private static void ProcessSSOTicket(Habbo sender, IncomingMessage message) { Habbo loggedInHabbo = CoreManager.ServerCore.GetHabboDistributor().GetHabbo( message.PopPrefixedString(), sender.GetConnection().GetIPAddressRaw()); if (loggedInHabbo == null) { new MConnectionClosed { Reason = ConnectionClosedReason.InvalidSSOTicket }.Send(sender); // TODO: Is delay needed? sender.GetConnection().Disconnect(); // Invalid SSO Ticket } else { // If this Habbo is already connected... if (loggedInHabbo.IsLoggedIn()) { // Disconnect them. new MConnectionClosed { Reason = ConnectionClosedReason.ConcurrentLogin }.Send(loggedInHabbo); loggedInHabbo.GetConnection().Disconnect(); } loggedInHabbo.LoginMerge(sender); sender = loggedInHabbo; sender.SetLoggedIn(true); } }