Ejemplo n.º 1
0
 internal static void ProcessSessionRequest(Habbo sender, IncomingMessage message)
 {
     new MSessionParams
         {
             A = 9,
             B = 0,
             C = 0,
             D = 1,
             E = 1,
             F = 3,
             G = 0,
             H = 2,
             I = 1,
             J = 4,
             K = 0,
             L = 5,
             DateFormat = "dd-MM-yyyy",
             M = "",
             N = 7,
             O = false,
             P = 8,
             URL = "http://null",
             Q = "",
             R = 9,
             S = false
         }.Send(sender);
 }
Ejemplo n.º 2
0
 internal static void ProcessCurrentDateRequest(Habbo sender, IncomingMessage message)
 {
     new MCurrentDate
     {
         Date = DateTime.Today
     }.Send(sender);
 }
Ejemplo n.º 3
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);
 }
Ejemplo n.º 4
0
 internal static void ProcessEncryptionRequest(Habbo sender, IncomingMessage message)
 {
     new MSetupEncryption
         {
             UnknownA = false
         }.Send(sender);
 }
Ejemplo n.º 5
0
 internal static void ProcessAccountDetailsRequest(Habbo sender, IncomingMessage message)
 {
     new MAccountDetails
     {
         ConnectionId = 0,
         Username = sender.Username, // Should this be DisplayName
         Motto = sender.Motto,
         Figure = sender.Figure,
         UnknownA = "",
         UnknownB = 12,
         UnknownC = 0,
         UnknownD = 1
     }.Send(sender);
 }
Ejemplo n.º 6
0
 private void SafeInvoke(GameSocketMessageHandler handler, Habbo sender, IncomingMessage message)
 {
     try
     {
         handler(sender, message);
     }
     catch (Exception e)
     {
         sender.Socket.Disconnect("Unhandled Exception in packet handler");
         string dumpPath = CoreManager.ServerCore.DumpException(e);
         CoreManager.ServerCore.ConsoleManager.Error("Event Handler", "An unhandled exception from a packet handler has been caught and the socket has been closed!");
         CoreManager.ServerCore.ConsoleManager.Error("Event Handler", "    An exception dump has been saved to " + dumpPath);
     }
 }
 internal static void ProcessMessengerInit(Habbo sender, IncomingMessage message)
 {
     MessengerManager manager = CoreManager.ServerCore.GetMessengerManager();
     new MMessengerInit
     {
         BefriendablesToExclude = new HashSet<Befriendable>
         {
             manager.GetBefriendable(sender)
         },
         Categories = manager.GetCategories(sender),
         MaximumFriends = 200, // TODO: Make this controllable by plugins.
         UnknownA = 10,
         UnknownB = 20,
         UnknownC = 30,
         UnknownD = false
     }.Send(sender);
 }
Ejemplo n.º 8
0
        public GameSocketMessageHandlers Invoke(Habbo sender, IncomingMessage message)
        {
            if (HighPriority != null)
                SafeInvoke(HighPriority, sender, message);

            if (message.Cancelled)
                return this;

            if (LowPriority != null)
                SafeInvoke(LowPriority, sender, message);

            if (message.Cancelled)
                return this;

            if (DefaultAction != null)
                SafeInvoke(DefaultAction, sender, message);

            if (Watcher != null)
                SafeInvoke(Watcher, sender, message);

            return this;
        }
Ejemplo n.º 9
0
        public GameSocketMessageHandlerInvoker Invoke(Habbo sender, IncomingMessage message)
        {
            lock (_handlers)
            {
                // Are there any handlers registered for this packet?
                if (!_handlers.ContainsKey(message.HeaderId))
                {
                    CoreManager.ServerCore.ConsoleManager.Warning("Game Socket Manager", "Unhandled HeaderID " + message.HeaderId + " (\"" + message.HeaderString + "\")");
                    // No, do nothing.
                    return this;
                }

                // Yes, let's invoke them.
                _handlers[message.HeaderId].Invoke(sender, message);
            }

            return this;
        }
Ejemplo n.º 10
0
 internal static void ProcessGroupStatusInit(Habbo sender, IncomingMessage message)
 {
     // Load group stuff
 }
Ejemplo n.º 11
0
 internal static void ProcessBalanceRequest(Habbo sender, IncomingMessage message)
 {
     new MCreditBalance(sender).Send(sender);
 }
Ejemplo n.º 12
0
 internal static void ProcessBadgeStatusRequest(Habbo sender, IncomingMessage message)
 {
     // Load badge stuff
 }
Ejemplo n.º 13
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);
            }
        }