public static MessengerObject SendWaitingUpdateMessage(this MessengerObject messenger)
        {
            Habbo            owner   = messenger.Owner;
            MMessengerUpdate message = owner.GetInstanceVariable("Messenger.WaitingUpdateMessage") as MMessengerUpdate;

            message.Categories.Union(messenger.GetAllCategories());
            message.Send(owner);

            message.FriendUpdates.Clear();
            message.Categories.Clear();
            return(messenger);
        }
        private static void ProcessMessengerInit(Habbo sender, IncomingMessage message)
        {
            MessengerObject messenger = CreateMessenger(
                sender);

            sender.SetInstanceVariable("Messenger.Instance", messenger);
            sender.SetInstanceVariable("Messenger.WaitingUpdateMessage", new MMessengerUpdate());

            new MMessengerInit
            {
                Categories = messenger.GetAllCategories(),
                Friends    = messenger.GetAllFriends(),
                UnknownA   = 10,
                UnknownB   = 20,
                UnknownC   = 30,
            }.Send(sender);


            if (OnMessengerReady != null)
            {
                OnMessengerReady.Invoke(messenger, new MessengerEventArgs(sender));
            }
        }