예제 #1
0
 internal static void ProcessPong(Habbo sender, IncomingMessage message)
 {
     HabboEventArgs eventArgs = new HabboEventArgs(sender);
     R36StandardStuff.EventFirer.Fire("habbo_pong:before", eventArgs);
     if (!eventArgs.IsCancelled)
         R36StandardStuff.EventFirer.Fire("habbo_pong:after", eventArgs);
 }
예제 #2
0
        internal static void ProcessPong(Habbo sender, IncomingMessage message)
        {
            HabboEventArgs eventArgs = new HabboEventArgs(sender);

            R36StandardStuff.EventFirer.Fire("habbo_pong:before", eventArgs);
            if (!eventArgs.IsCancelled)
            {
                R36StandardStuff.EventFirer.Fire("habbo_pong:after", eventArgs);
            }
        }
예제 #3
0
        private void SendFuserights(HabboEventArgs eventArgs)
        {
            FuserightEventArgs fuserightEventArgsInstance = new FuserightEventArgs(eventArgs.Habbo);

            EventFirer.Fire("fuseright_request:before", eventArgs);
            EventFirer.Fire("fuseright_request:after", eventArgs);

            new MFuseRights
            {
                FuseRights = fuserightEventArgsInstance.GetFuserights()
            }.Send(eventArgs.Habbo);
        }
예제 #4
0
        internal static void ProcessSSOTicket(Habbo sender, IncomingMessage message)
        {
            ClassicIncomingMessage classicMessage = (ClassicIncomingMessage)message;

            Habbo loggedInHabbo = CoreManager.ServerCore.HabboDistributor.GetHabboFromSSOTicket(classicMessage.PopPrefixedString());

            if (loggedInHabbo == null)
            {
                new MConnectionClosed
                {
                    Reason = ConnectionClosedReason.InvalidSSOTicket
                }.Send(sender);

                // TODO: Is delay needed?

                sender.Socket.Disconnect("Invalid SSO Ticket!"); // Invalid SSO Ticket
            }
            else
            {
                HabboEventArgs eventArgs = new HabboEventArgs(loggedInHabbo);
                R36StandardStuff.EventFirer.Fire("habbo_login:before", eventArgs);

                if (eventArgs.IsCancelled)
                {
                    if (sender.Socket != null)
                    {
                        sender.Socket.Disconnect(eventArgs.CancelReason);
                    }
                    return;
                }

                // If this Habbo is already connected...
                if (loggedInHabbo.LoggedIn)
                {
                    // Disconnect them.
                    new MConnectionClosed
                    {
                        Reason = ConnectionClosedReason.ConcurrentLogin
                    }.Send(loggedInHabbo);
                    loggedInHabbo.Socket.Disconnect("Concurrent Login!");
                }

                sender.Socket.LinkHabbo(loggedInHabbo);
                loggedInHabbo.LoggedIn   = true;
                loggedInHabbo.LastAccess = DateTime.Now;

                R36StandardStuff.EventFirer.Fire("habbo_login:after", eventArgs);
            }
        }
예제 #5
0
        private static void SendPermissions(object source, HabboEventArgs habboEventArgs)
        {
            // Get the fuse permissions.
            IEnumerable <string> fusePermissions = (source as Habbo).GetFusePermissions();

            // Send them to the client.
            new MPermissions
            {
                FuseRights = fusePermissions
            }.Send((source as Habbo));


            // Mark them as sent.
            (source as Habbo).SetFusePermissionSent(fusePermissions);
        }
예제 #6
0
        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);
        }
예제 #7
0
        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);
        }
예제 #8
0
        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);
        }
예제 #9
0
 private static void SendAuthenticationOkay(object source, HabboEventArgs e)
 {
     // Inform the client of a successful login.
     new MAuthenticationOkay().Send(source as IMessageable);
 }
예제 #10
0
        internal static void ProcessSSOTicket(Habbo sender, IncomingMessage message)
        {
            ClassicIncomingMessage classicMessage = (ClassicIncomingMessage) message;

            Habbo loggedInHabbo = CoreManager.ServerCore.HabboDistributor.GetHabboFromSSOTicket(classicMessage.PopPrefixedString());

            if (loggedInHabbo == null)
            {
                new MConnectionClosed
                    {
                        Reason = ConnectionClosedReason.InvalidSSOTicket
                    }.Send(sender);

                // TODO: Is delay needed?

                sender.Socket.Disconnect("Invalid SSO Ticket!"); // Invalid SSO Ticket
            }
            else
            {
                HabboEventArgs eventArgs = new HabboEventArgs(loggedInHabbo);
                R36StandardStuff.EventFirer.Fire("habbo_login:before", eventArgs);

                if (eventArgs.IsCancelled)
                {
                    if (sender.Socket != null)
                        sender.Socket.Disconnect(eventArgs.CancelReason);
                    return;
                }

                // If this Habbo is already connected...
                if (loggedInHabbo.LoggedIn)
                {
                    // Disconnect them.
                    new MConnectionClosed
                        {
                            Reason = ConnectionClosedReason.ConcurrentLogin
                        }.Send(loggedInHabbo);
                    loggedInHabbo.Socket.Disconnect("Concurrent Login!");
                }

                sender.Socket.LinkHabbo(loggedInHabbo);
                loggedInHabbo.LoggedIn = true;
                loggedInHabbo.LastAccess = DateTime.Now;

                R36StandardStuff.EventFirer.Fire("habbo_login:after", eventArgs);
            }
        }
예제 #11
0
 private void ConfirmLogin(HabboEventArgs eventArgs)
 {
     new MAuthenticationOkay().Send(eventArgs.Habbo);
 }