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);
            }
        }
        private static void RegisterHandlers(object source, HabboEventArgs args)
        {
            Habbo target = source as Habbo;

            if (target == null)
            {
                return;
            }
            target.
            GetConnection().
            AddHandler(12, PacketHandlerPriority.DefaultAction, ProcessMessengerInit).
            AddHandler(39, PacketHandlerPriority.DefaultAction, ProcessSendFriendRequest).
            AddHandler(40, PacketHandlerPriority.DefaultAction, ProcessRemoveFriends).
            AddHandler(41, PacketHandlerPriority.DefaultAction, ProcessMessengerSearch);
        }
        private static void RegisterHandlers(object source, HabboEventArgs args)
        {
            Habbo target = source as Habbo;

            if (target == null)
            {
                return;
            }

            target
            .GetConnection()
            .AddHandler(150, PacketHandlerPriority.DefaultAction, ProcessRequestCategoryListings)
            .AddHandler(151, PacketHandlerPriority.DefaultAction, ProcessRequestUsableCategoryListing)
            .AddHandler(264, PacketHandlerPriority.DefaultAction, ProcessRequestRecommendedRoomListing)
            .AddHandler(16, PacketHandlerPriority.DefaultAction, ProcessRequestOwnRoomListing);
        }
        private static void RegisterHandlers(object source, HabboEventArgs e)
        {
            Habbo target = (source as Habbo);

            // Is source of type Habbo?
            if (target == null)
            {
                return;
            }

            target.
            GetConnection().
            AddHandler(6, PacketHandlerPriority.DefaultAction, ProcessBalanceRequest).
            AddHandler(7, PacketHandlerPriority.DefaultAction, ProcessHabboInfoRequest).
            AddHandler(8, PacketHandlerPriority.DefaultAction, ProcessGetVolumeLevel).
            AddHandler(228, PacketHandlerPriority.DefaultAction, ProcessGetVolumeLevel).
            AddHandler(482, PacketHandlerPriority.DefaultAction, ProcessUnknown);
        }
 public void UnregisterHandlers(Habbo target)
 {
     UnregisterHandlers(target.GetConnection());
 }