Exemple #1
0
        internal void SaveWardrobe()
        {
            uint SlotId = Request.PopWiredUInt();

            string Look   = Request.PopFixedString();
            string Gender = Request.PopFixedString();

            if (!AntiMutant.ValidateLook(Look, Gender))
            {
                return;
            }

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT null FROM user_wardrobe WHERE user_id = " + Session.GetHabbo().Id + " AND slot_id = " + SlotId + "");
                dbClient.addParameter("look", Look);
                dbClient.addParameter("gender", Gender.ToUpper());

                if (dbClient.getRow() != null)
                {
                    dbClient.setQuery("UPDATE user_wardrobe SET look = @look, gender = @gender WHERE user_id = " + Session.GetHabbo().Id + " AND slot_id = " + SlotId + ";");
                    dbClient.addParameter("look", Look);
                    dbClient.addParameter("gender", Gender.ToUpper());
                    dbClient.runQuery();
                }
                else
                {
                    dbClient.setQuery("INSERT INTO user_wardrobe (user_id,slot_id,look,gender) VALUES (" + Session.GetHabbo().Id + "," + SlotId + ",@look,@gender)");
                    dbClient.addParameter("look", Look);
                    dbClient.addParameter("gender", Gender.ToUpper());
                    dbClient.runQuery();
                }
            }
        }
Exemple #2
0
        public Game()
        {
            this._packetManager     = new PacketManager();
            this._clientManager     = new GameClientManager();
            this._modManager        = new ModerationManager();
            this._moderationTool    = new ModerationTool();
            this._groupForumManager = new GroupForumManager();
            this._itemDataManager   = new ItemDataManager();
            this._itemDataManager.Init();

            this._catalogManager = new CatalogManager();
            this._catalogManager.Init(this._itemDataManager);

            this._televisionManager = new TelevisionManager();

            this._navigatorManager   = new NavigatorManager();
            this._roomManager        = new RoomManager();
            this._chatManager        = new ChatManager();
            this._groupManager       = new GroupManager();
            this._questManager       = new QuestManager();
            this._achievementManager = new AchievementManager();
            this._talentTrackManager = new TalentTrackManager();

            this._landingViewManager = new LandingViewManager();
            this._gameDataManager    = new GameDataManager();

            this._globalUpdater = new ServerStatusUpdater();
            this._globalUpdater.Init();

            this._languageLocale = new LanguageLocale();
            this._antiMutant     = new AntiMutant();
            this._botManager     = new BotManager();

            this._cacheManager  = new CacheManager();
            this._rewardManager = new RewardManager();

            this._badgeManager = new BadgeManager();
            this._badgeManager.Init();

            this._permissionManager = new PermissionManager();
            this._permissionManager.Init();

            this._subscriptionManager = new SubscriptionManager();
            this._subscriptionManager.Init();

            this._cameraManager = new CameraPhotoManager();
            this._cameraManager.Init(this._itemDataManager);
        }
Exemple #3
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            uint   num   = Event.PopWiredUInt();
            string text  = Event.PopFixedString();
            string text2 = Event.PopFixedString();

            if (AntiMutant.ValidateLook(text, text2) && Session.GetHabbo().GetSubscriptionManager().HasSubscription("habbo_club"))
            {
                using (DatabaseClient client = Essential.GetDatabase().GetClient())
                {
                    client.AddParamWithValue("look", text);
                    client.AddParamWithValue("gender", text2.ToUpper());
                    if (client.ReadDataRow(string.Concat(new object[]
                    {
                        "SELECT null FROM user_wardrobe WHERE user_id = ",
                        Session.GetHabbo().Id,
                        " AND slot_id = ",
                        num,
                        " LIMIT 1"
                    })) != null)
                    {
                        client.ExecuteQuery(string.Concat(new object[]
                        {
                            "UPDATE user_wardrobe SET look = @look, gender = @gender WHERE user_id = ",
                            Session.GetHabbo().Id,
                            " AND slot_id = ",
                            num,
                            " LIMIT 1;"
                        }));
                    }
                    else
                    {
                        client.ExecuteQuery(string.Concat(new object[]
                        {
                            "INSERT INTO user_wardrobe (user_id,slot_id,look,gender) VALUES (",
                            Session.GetHabbo().Id,
                            ",",
                            num,
                            ",@look,@gender)"
                        }));
                    }
                }
            }
        }
Exemple #4
0
 internal Game(int conns)
 {
     Logging.WriteLine("Starting modules...");
     this.ClientManager  = new GameClientManager();
     this.BanManager     = new ModerationBanManager();
     this.RoleManager    = new RoleManager();
     this.Navigator      = new Navigator();
     this.ItemManager    = new ItemManager();
     this.Catalog        = new Catalog();
     this.RoomManager    = new RoomManager();
     this.PixelManager   = new PixelManager();
     this.HotelView      = new HotelView();
     this.ModerationTool = new ModerationTool();
     this.BotManager     = new BotManager();
     this.questManager   = new QuestManager();
     this.Events         = new RoomEvents();
     this.groupManager   = new GroupManager();
     this.talentManager  = new TalentManager();
     this.VideoManager   = new VideoManager();
     this.PinataHandler  = new PinataHandler();
     this.PollManager    = new PollManager();
     this.AntiMutant     = new AntiMutant();
 }
Exemple #5
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            string text  = Event.PopFixedString().ToUpper();
            string text2 = GoldTree.FilterString(Event.PopFixedString());

            if (AntiMutant.ValidateLook(text2, text))
            {
                if (Session.GetHabbo().CurrentQuestId == 2u)
                {
                    GoldTree.GetGame().GetQuestManager().ProgressUserQuest(2u, Session);
                }
                Session.GetHabbo().Figure = text2;
                Session.GetHabbo().Gender = text.ToLower();
                using (DatabaseClient client = GoldTree.GetDatabase().GetClient())
                {
                    client.AddParamWithValue("look", text2);
                    client.AddParamWithValue("gender", text);
                    client.ExecuteQuery("UPDATE users SET look = @look, gender = @gender WHERE id = " + Session.GetHabbo().Id + " LIMIT 1;");
                }
                GoldTree.GetGame().GetAchievementManager().addAchievement(Session, 1u, 1);
                ServerMessage serverMessage = new ServerMessage(266u);
                serverMessage.AppendInt32(-1);
                serverMessage.AppendStringWithBreak(Session.GetHabbo().Figure);
                serverMessage.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower());
                serverMessage.AppendStringWithBreak(Session.GetHabbo().Motto);
                serverMessage.AppendInt32(Session.GetHabbo().AchievementScore);
                serverMessage.AppendStringWithBreak("");
                Session.SendMessage(serverMessage);
                if (Session.GetHabbo().InRoom)
                {
                    Room currentRoom = Session.GetHabbo().CurrentRoom;
                    if (currentRoom != null)
                    {
                        RoomUser roomUserByHabbo = currentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
                        if (roomUserByHabbo != null)
                        {
                            roomUserByHabbo.string_0 = "";
                            if (Session.GetHabbo().method_4() > 0)
                            {
                                TimeSpan timeSpan = DateTime.Now - Session.GetHabbo().dateTime_0;
                                if (timeSpan.Seconds > 4)
                                {
                                    Session.GetHabbo().int_23 = 0;
                                }
                                if (timeSpan.Seconds < 4 && Session.GetHabbo().int_23 > 5)
                                {
                                    ServerMessage serverMessage2 = new ServerMessage(27u);
                                    serverMessage2.AppendInt32(Session.GetHabbo().method_4());
                                    Session.SendMessage(serverMessage2);
                                    return;
                                }
                                Session.GetHabbo().dateTime_0 = DateTime.Now;
                                Session.GetHabbo().int_23++;
                            }
                            ServerMessage serverMessage3 = new ServerMessage(266u);
                            serverMessage3.AppendInt32(roomUserByHabbo.VirtualId);
                            serverMessage3.AppendStringWithBreak(Session.GetHabbo().Figure);
                            serverMessage3.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower());
                            serverMessage3.AppendStringWithBreak(Session.GetHabbo().Motto);
                            serverMessage3.AppendInt32(Session.GetHabbo().AchievementScore);
                            serverMessage3.AppendStringWithBreak("");
                            currentRoom.SendMessage(serverMessage3, null);
                        }
                    }
                }
            }
        }
Exemple #6
0
        public Game()
        {
            GetHallOfFame.GetInstance().Load();
            _packetManager        = new PacketManager();
            _rentableSpaceManager = new RentableSpaceManager();
            _clientManager        = new GameClientManager();
            _modManager           = new ModerationManager();

            _itemDataManager = new ItemDataManager();
            _itemDataManager.Init();
            //this._cameraManager = new CameraPhotoManager();
            //this._cameraManager.Init(this._itemDataManager);
            _catalogManager = new CatalogManager();
            _catalogManager.Init(_itemDataManager);
            _frontpageManager = new FrontpageManager();

            _televisionManager = new TelevisionManager();
            _crackableManager  = new CrackableManager();
            _crackableManager.Initialize(NeonEnvironment.GetDatabaseManager().GetQueryReactor());
            _furniMaticRewardsManager = new FurniMaticRewardsManager();
            _furniMaticRewardsManager.Initialize(NeonEnvironment.GetDatabaseManager().GetQueryReactor());

            _craftingManager = new CraftingManager();
            _craftingManager.Init();

            _navigatorManager   = new NavigatorManager();
            _roomManager        = new RoomManager();
            _chatManager        = new ChatManager();
            _groupManager       = new GroupManager();
            _questManager       = new QuestManager();
            _achievementManager = new AchievementManager();
            _talentTrackManager = new TalentTrackManager();

            _landingViewManager = new LandingViewManager();
            _gameDataManager    = new GameDataManager();

            _globalUpdater = new ServerStatusUpdater();
            _globalUpdater.Init();

            _languageLocale = new LanguageLocale();
            _antiMutant     = new AntiMutant();
            _botManager     = new BotManager();

            _cacheManager  = new CacheManager();
            _rewardManager = new RewardManager();
            _musicManager  = new SongManager();

            _badgeManager = new BadgeManager();
            _badgeManager.Init();

            forummanager = new GroupForumManager();

            _communityGoalVS = new CommunityGoalVS();
            _communityGoalVS.LoadCommunityGoalVS();

            _permissionManager = new PermissionManager();
            _permissionManager.Init();

            _subscriptionManager = new SubscriptionManager();
            _subscriptionManager.Init();

            HelperToolsManager.Init();

            _calendarManager = new CalendarManager();
            _calendarManager.Init();

            _leaderBoardDataManager = new LeaderBoardDataManager();

            _targetedoffersManager = new TargetedOffersManager();
            _targetedoffersManager.Initialize(NeonEnvironment.GetDatabaseManager().GetQueryReactor());

            _nuxusergiftManager = new NuxUserGiftsManager();
            _nuxusergiftManager.Initialize(NeonEnvironment.GetDatabaseManager().GetQueryReactor());

            _nuxusergiftlistManager = new NuxUserGiftsListManager();
            _nuxusergiftlistManager.Initialize(NeonEnvironment.GetDatabaseManager().GetQueryReactor());

            _pollManager = new PollManager();
            _pollManager.Init();
            WebSocketManager.StartListener();
        }
Exemple #7
0
        public Game()
        {
            this._packetManager = new PacketManager();

            this._clientManager = new GameClientManager();

            this._modManager = new ModerationManager();

            this._moderationTool = new ModerationTool();


            this._itemDataManager = new ItemDataManager();
            this._itemDataManager.Init();

            this._catalogManager = new CatalogManager();
            this._catalogManager.Init(this._itemDataManager);

            this._televisionManager = new TelevisionManager();

            this._navigatorManager = new NavigatorManager();

            this._roomManager = new RoomManager();

            this._chatManager = new ChatManager();

            this._questManager = new QuestManager();

            this._achievementManager = new AchievementManager();

            this._talentTrackManager = new TalentTrackManager();

            this._landingViewManager = new LandingViewManager();

            this._gameDataManager = new GameDataManager();

            this._globalUpdater = new ServerStatusUpdater();
            this._globalUpdater.Init();

            this._languageLocale = new LanguageLocale();

            this._antiMutant = new AntiMutant();

            this._botManager = new BotManager();

            this._cacheManager = new CacheManager();

            this._rewardManager = new RewardManager();

            this._badgeManager = new BadgeManager();
            this._badgeManager.Init();

            this._permissionManager = new PermissionManager();
            this._permissionManager.Init();

            this._subscriptionManager = new SubscriptionManager();
            this._subscriptionManager.Init();

            this._guideManager = new GuideManager();

            int pollLoaded;

            this._pollManager = new PollManager();
            this._pollManager.Init(out pollLoaded);

            #region Roleplay Section
            RoleplayData.Initialize();
            EventManager.Initialize();
            CombatManager.Initialize();
            RoleplayGameManager.Initialize();

            this._groupManager = new GroupManager();
            this._groupManager.Initialize();

            TexasHoldEmManager.Initialize();
            TurfManager.Initialize();
            WeaponManager.Initialize();
            FoodManager.Initialize();
            FarmingManager.Initialize();
            CraftingManager.Initialize();
            LotteryManager.Initialize();
            ToDoManager.Initialize();
            BlackListManager.Initialize();
            BountyManager.Initialize();
            WebSocketChatManager.Initialiaze();

            this._houseManager = new HouseManager();
            this._houseManager.Init();

            this._webEventManager = new WebEventManager();
            this._webEventManager.Init();
            #endregion
        }
Exemple #8
0
        internal void ProcessRoom()
        {
            try
            {
                if (isCrashed || mDisposed)
                {
                    return;
                }
                try
                {
                    int idle = 0;
                    GetRoomItemHandler().OnCycle();
                    GetRoomUserManager().OnCycle(ref idle);

                    if (musicController != null)
                    {
                        musicController.Update(this);
                    }

                    if (idle > 0)
                    {
                        IdleTime++;
                    }
                    else
                    {
                        IdleTime = 0;
                    }

                    if (!mCycleEnded)
                    {
                        if (this.IdleTime >= 10)
                        {
                            FirewindEnvironment.GetGame().GetRoomManager().UnloadRoom(this);
                            mIsIdle = false;
                            return;
                        }
                        else
                        {
                            ServerMessage Updates = GetRoomUserManager().SerializeStatusUpdates(false);

                            if (Updates != null)
                            {
                                SendMessage(Updates);
                            }
                        }
                    }

                    if (gameItemHandler != null)
                    {
                        gameItemHandler.OnCycle();
                    }
                    if (game != null)
                    {
                        game.OnCycle();
                    }
                    if (GotBanzai())
                    {
                        banzai.OnCycle();
                    }
                    if (GotSoccer())
                    {
                        soccer.OnCycle();
                    }
                    if (wiredHandler != null)
                    {
                        wiredHandler.OnCycle();
                    }

                    roomUserManager.UserList.OnCycle();
                    WorkRoomAlertQueue();
                    WorkRoomBadgeQueue();
                    WorkRoomKickQueue();
                    WorkChatQueue();

                    WorkRoomServerMessageThread();

                    // Hidden license check here
                    if (FirewindEnvironment.GetRandomNumber(0, 750) == 100)
                    {
                        if (!AntiMutant.ValidateLook("", ""))
                        {
                            if (FirewindEnvironment.GetRandomNumber(0, 50) == 25)
                            {
                                Logging.LogCriticalException("Could not find main decrypted class!");
                                FirewindEnvironment.PreformShutDown();
                            }
                            throw new Exception(String.Format("Invalid byte specified after {0} in function {1}", 0x0FF, "CrackedEmulatorInit()"));
                        }
                    }
                }
                catch (Exception e)
                {
                    OnRoomCrash(e);
                }
            }
            catch (Exception e)
            {
                Logging.LogCriticalException("Sub crash in room cycle: " + e.ToString());
            }
        }
Exemple #9
0
        internal void ChangeLook()
        {
            if (Session.GetHabbo().MutantPenalty)
            {
                Session.SendNotif("Because of a penalty or restriction on your account, you are not allowed to change your look.");
                return;
            }

            string Gender = Request.PopFixedString().ToUpper();
            string Look   = ButterflyEnvironment.FilterInjectionChars(Request.PopFixedString());

            if (!AntiMutant.ValidateLook(Look, Gender))
            {
                return;
            }

            ButterflyEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, HabboHotel.Quests.QuestType.PROFILE_CHANGE_LOOK);

            Session.GetHabbo().Look   = ButterflyEnvironment.FilterFigure(Look);
            Session.GetHabbo().Gender = Gender.ToLower();

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("UPDATE users SET look = @look, gender = @gender WHERE id = " + Session.GetHabbo().Id);
                dbClient.addParameter("look", Look);
                dbClient.addParameter("gender", Gender);
                dbClient.runQuery();
            }

            ButterflyEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_AvatarLooks", 1);

            Session.GetMessageHandler().GetResponse().Init(266);
            Session.GetMessageHandler().GetResponse().AppendInt32(-1);
            Session.GetMessageHandler().GetResponse().AppendStringWithBreak(Session.GetHabbo().Look);
            Session.GetMessageHandler().GetResponse().AppendStringWithBreak(Session.GetHabbo().Gender.ToLower());
            Session.GetMessageHandler().GetResponse().AppendStringWithBreak(Session.GetHabbo().Motto);
            Session.GetMessageHandler().SendResponse();

            if (Session.GetHabbo().InRoom)
            {
                Room Room = Session.GetHabbo().CurrentRoom;

                if (Room == null)
                {
                    return;
                }

                RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

                if (User == null)
                {
                    return;
                }

                ServerMessage RoomUpdate = new ServerMessage(266);
                RoomUpdate.AppendInt32(User.VirtualId);
                RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Look);
                RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower());
                RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Motto);
                Room.SendMessage(RoomUpdate);
            }
        }
Exemple #10
0
        public WebSocketServerManager(string SocketURL)
        {
            FleckLog.Level     = LogLevel.Error;
            FleckLog.LogAction = LogWebsocketException;
            allSockets         = new List <IWebSocketConnection>();
            socketbyName       = new Dictionary <string, IWebSocketConnection>();
            namebySocket       = new Dictionary <IWebSocketConnection, string>();
            server             = new WebSocketServer(SocketURL);
            if (SocketURL.StartsWith("wss://"))
            {
                server.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2("client.habbo.tl.cert.cer");
            }
            server.Start(socket =>
            {
                socket.OnOpen = () =>
                {
                    if (allSockets.Contains(socket))
                    {
                        allSockets.Remove(socket);
                    }
                    allSockets.Add(socket);
                };
                socket.OnClose = () =>
                {
                    string name = "";
                    if (namebySocket.ContainsKey(socket))
                    {
                        name = namebySocket[socket].ToString();
                        namebySocket.Remove(socket);
                    }
                    if (socketbyName.ContainsKey(name) && name != "")
                    {
                        socketbyName.Remove(name);
                    }
                    if (allSockets.Contains(socket))
                    {
                        allSockets.Remove(socket);
                    }
                    if (name != "")
                    {
                        using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                        {
                            dbClient.AddParamWithValue("name", name);
                            dbClient.ExecuteQuery("UPDATE users SET websocket='0' WHERE username=@name");
                        }
                    }
                };
                socket.OnMessage = message =>
                {
                    var msg = message;
                    int pId = 0;
                    if (!int.TryParse(msg.Split('|')[0], out pId))
                    {
                        return;
                    }
                    if (msg.Length > 1024)
                    {
                        return;
                    }
                    if (msg.StartsWith("1|"))
                    {
                        using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                        {
                            dbClient.AddParamWithValue("auth", msg.Substring(2));
                            DataRow drow = null;
                            drow         = dbClient.ReadDataRow("SELECT username FROM users WHERE auth_ticket= @auth LIMIT 1");
                            if (drow == null)
                            {
                                socket.Close();
                            }
                            else
                            {
                                if (socketbyName.ContainsKey((string)drow["username"]))
                                {
                                    socketbyName.Remove((string)drow["username"]);
                                }
                                socketbyName.Add(drow["username"].ToString(), socket);
                                if (namebySocket.ContainsKey(socket))
                                {
                                    namebySocket.Remove(socket);
                                }
                                namebySocket.Add(socket, drow["username"].ToString());
                                dbClient.AddParamWithValue("name", drow["username"].ToString());
                                dbClient.ExecuteQuery("UPDATE users SET websocket='1' WHERE username=@name");
                            }
                        }
                    }
                    else
                    {
                        GameClient Session = Essential.GetGame().GetClientManager().GetClientByHabbo(GetNameByWebSocket(socket));
                        Room room          = null;
                        string[] args      = msg.Split('|');
                        switch (int.Parse(args[0]))
                        {
                        case 6:
                            {
                                try
                                {
                                    room = Essential.GetGame().GetRoomManager().GetRoom(uint.Parse(args[1]));
                                    if (Session != null && room != null)
                                    {
                                        ServerMessage Message = new ServerMessage(Outgoing.RoomForward);
                                        Message.AppendBoolean(false);
                                        Message.AppendUInt(room.Id);
                                        Session.SendMessage(Message);
                                    }
                                }
                                catch { }
                                break;
                            }

                        case 7:
                            {
                                try
                                {
                                    if (Session.GetHabbo().CurrentRoom.CheckRights(Session, false))
                                    {
                                        int ItemId  = int.Parse(args[1]);
                                        double newZ = double.Parse(args[2]);
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28((uint)ItemId);
                                        if (ri != null && ri.GetBaseItem().InteractionType == "stackfield")
                                        {
                                            ri.setHeight(newZ);
                                            ServerMessage smg = new ServerMessage(Outgoing.ObjectUpdate);
                                            ri.Serialize(smg);
                                            Session.GetHabbo().CurrentRoom.SendMessage(smg, null);
                                        }
                                    }
                                }
                                catch { }
                                break;
                            }

                        case 10:
                            {
                                try
                                {
                                    if (Session.GetHabbo().CurrentRoom.CheckRights(Session, false))
                                    {
                                        uint itemid    = uint.Parse(args[1]);
                                        int handitemId = int.Parse(args[2]);
                                        RoomItem ri    = Session.GetHabbo().CurrentRoom.method_28(itemid);
                                        if (ri != null && ri.GetBaseItem().InteractionType == "wf_cnd_has_handitem")
                                        {
                                            ri.string_2 = handitemId.ToString();
                                            ri.UpdateState(true, false);
                                        }
                                    }
                                } catch { }
                                break;
                            }

                        case 12:
                            {
                                try
                                {
                                    if (Session.GetHabbo().CurrentRoom.CheckRights(Session, false))
                                    {
                                        uint itemid = uint.Parse(args[1]);
                                        string team = args[2];
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(itemid);
                                        if (ri != null && (ri.GetBaseItem().InteractionType == "wf_cnd_actor_in_team" || ri.GetBaseItem().InteractionType == "wf_cnd_not_in_team") && Session.GetHabbo().CurrentRoom.IsValidTeam(team))
                                        {
                                            ri.string_2 = team;
                                            ri.UpdateState(true, false);
                                        }
                                    }
                                } catch { }
                                break;
                            }

                        case 14:
                            {
                                try
                                {
                                    Session.GetHabbo().CurrentRoom.method_56(Session.GetHabbo().Username).CarryItem(int.Parse(args[1]));
                                }
                                catch { }
                                break;
                            }

                        case 18:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri      = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        string BrandData = "state" + Convert.ToChar(9) + "0";
                                        if (ri == null || ri.GetBaseItem().InteractionType != "background")
                                        {
                                            break;
                                        }
                                        BrandData = BrandData + Convert.ToChar(9) + "imageUrl" + Convert.ToChar(9) + args[2];
                                        BrandData = BrandData + Convert.ToChar(9) + "offsetX" + Convert.ToChar(9) + int.Parse(args[3]);
                                        BrandData = BrandData + Convert.ToChar(9) + "offsetY" + Convert.ToChar(9) + int.Parse(args[4]);
                                        BrandData = BrandData + Convert.ToChar(9) + "offsetZ" + Convert.ToChar(9) + int.Parse(args[5]);
                                        using (DatabaseClient class2 = Essential.GetDatabase().GetClient())
                                        {
                                            class2.AddParamWithValue("extradata", BrandData);
                                            class2.ExecuteQuery("UPDATE items_extra_data SET extra_data = @extradata WHERE item_id = '" + uint.Parse(args[1]) + "' LIMIT 1");
                                        }
                                        ri.ExtraData = BrandData;
                                        Session.GetHabbo().CurrentRoom.method_79(Session, ri, ri.GetX, ri.Int32_1, ri.int_3, false, false, true);
                                        ri.UpdateState(true, false, true);
                                    }
                                    catch (Exception ex) { Core.Logging.LogException(ex.ToString()); }
                                }
                                break;
                            }

                        case 19:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && ri.GetBaseItem().InteractionType == "badge_display")
                                        {
                                            string Badge = Session.GetHabbo().GetBadgeComponent().HasBadge(args[2]) ? args[2] : "null";
                                            ri.ExtraData = Badge;
                                            using (DatabaseClient class2 = Essential.GetDatabase().GetClient())
                                            {
                                                class2.AddParamWithValue("extradata", Badge);
                                                class2.ExecuteQuery("UPDATE items_extra_data SET extra_data = @extradata WHERE item_id = '" + uint.Parse(args[1]) + "' LIMIT 1");
                                            }
                                            Session.GetHabbo().CurrentRoom.method_79(Session, ri, ri.GetX, ri.Int32_1, ri.int_3, false, false, true);
                                            ri.UpdateState(true, false, true);
                                        }
                                    }
                                    catch { }
                                }
                                break;
                            }

                        case 21:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && ri.GetBaseItem().InteractionType == "wf_act_bot_follow_avatar")
                                        {
                                            string username   = args[2];
                                            int timeinseconds = 30;
                                            if (int.TryParse(args[3], out timeinseconds))
                                            {
                                                RoomUser bot = null;
                                                foreach (RoomUser ru in Session.GetHabbo().CurrentRoom.RoomUsers)
                                                {
                                                    if (ru != null && ru.IsBot && !ru.IsPet && ru.RoomBot.Name == username)
                                                    {
                                                        bot = ru;
                                                    }
                                                }
                                                if (bot != null)
                                                {
                                                    ri.string_2 = username + ";" + timeinseconds;
                                                }
                                                ri.UpdateState(true, false);
                                            }
                                        }
                                    }
                                    catch { }
                                }
                                break;
                            }

                        case 23:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && ri.GetBaseItem().InteractionType == "wf_act_bot_give_handitem")
                                        {
                                            int itemId = 0;
                                            if (int.TryParse(args[2], out itemId))
                                            {
                                                string username = args[3];
                                                RoomUser bot    = null;
                                                foreach (RoomUser ru in Session.GetHabbo().CurrentRoom.RoomUsers)
                                                {
                                                    if (ru != null && ru.IsBot && !ru.IsPet && ru.RoomBot.Name == username)
                                                    {
                                                        bot = ru;
                                                    }
                                                }
                                                if (bot != null)
                                                {
                                                    ri.string_2 = itemId + ";" + username;
                                                }
                                                ri.UpdateState(true, false);
                                            }
                                        }
                                    }
                                    catch { }
                                }
                                break;
                            }

                        case 25:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && ri.GetBaseItem().InteractionType == "wf_act_bot_talk" && args[4].Length < 200)
                                        {
                                            string username = args[2];
                                            string type     = (args[3] == "shout" || args[3] == "say") ? args[3] : "say";
                                            string text     = args[4];
                                            RoomUser bot    = null;
                                            foreach (RoomUser ru in Session.GetHabbo().CurrentRoom.RoomUsers)
                                            {
                                                if (ru != null && ru.IsBot && !ru.IsPet && ru.RoomBot.Name == username)
                                                {
                                                    bot = ru;
                                                }
                                            }
                                            if (bot != null)
                                            {
                                                ri.string_2 = username + ";" + type + ";" + text;
                                            }
                                            ri.UpdateState(true, false);
                                        }
                                    }
                                    catch (Exception ex) { Logging.LogException(ex.ToString()); }
                                }
                                break;
                            }

                        case 26:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && ri.GetBaseItem().InteractionType == "wf_act_bot_talk_to_avatar" && args[4].Length < 200)
                                        {
                                            string username = args[2];
                                            string type     = (args[3] == "whisper" || args[3] == "say") ? args[3] : "say";
                                            string text     = args[4];
                                            RoomUser bot    = null;
                                            foreach (RoomUser ru in Session.GetHabbo().CurrentRoom.RoomUsers)
                                            {
                                                if (ru != null && ru.IsBot && !ru.IsPet && ru.RoomBot.Name == username)
                                                {
                                                    bot = ru;
                                                }
                                            }
                                            if (bot != null)
                                            {
                                                ri.string_2 = username + ";" + type + ";" + text;
                                            }
                                            ri.UpdateState(true, false);
                                        }
                                    }
                                    catch (Exception ex) { Logging.LogException(ex.ToString()); }
                                }
                                break;
                            }

                        case 28:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && ri.GetBaseItem().InteractionType == "wf_act_bot_clothes")
                                        {
                                            string username = args[2];
                                            string newlook  = args[3];
                                            string gender   = args[4];
                                            RoomUser bot    = null;
                                            foreach (RoomUser ru in Session.GetHabbo().CurrentRoom.RoomUsers)
                                            {
                                                if (ru != null && ru.IsBot && !ru.IsPet && ru.RoomBot.Name == username)
                                                {
                                                    bot = ru;
                                                }
                                            }
                                            if (bot != null && AntiMutant.ValidateLook(newlook, gender))
                                            {
                                                ri.string_2 = username + ";" + newlook + ";" + gender;
                                            }
                                            ri.UpdateState(true, false);
                                        }
                                    }
                                    catch { }
                                }
                                break;
                            }

                        case 32:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && ri.GetBaseItem().InteractionType == "wf_act_yt")
                                        {
                                            string ytlink = args[2].Split('=')[1];
                                            ri.string_2   = ytlink;
                                            ri.UpdateState(true, false);
                                        }
                                    }
                                    catch { }
                                }
                                break;
                            }

                        case 35:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && (ri.GetBaseItem().InteractionType == "wf_cnd_has_purse" || ri.GetBaseItem().InteractionType == "wf_cnd_hasnot_purse"))
                                        {
                                            string currency = Session.GetHabbo().CurrentRoom.IsValidCurrency(args[2]) ? args[2] : "credits";
                                            int number      = 1337;
                                            int.TryParse(args[3], out number);
                                            ri.string_2 = currency + ";" + number;
                                            ri.UpdateState(true, false);
                                        }
                                    }
                                    catch { }
                                }
                                break;
                            }

                        case 36:
                            {
                                if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
                                {
                                    try
                                    {
                                        RoomItem ri = Session.GetHabbo().CurrentRoom.method_28(uint.Parse(args[1]));
                                        if (ri != null && ri.GetBaseItem().InteractionType == "wf_act_img" && IsValidFile(args[2]))
                                        {
                                            ri.string_2 = args[2];
                                            ri.UpdateState(true, false);
                                        }
                                    }
                                    catch { }
                                }
                                break;
                            }
                        }
                    }
                };
            });
        }
        public Game()
        {
            this._packetManager  = new PacketManager();
            this._clientManager  = new GameClientManager();
            this._modManager     = new ModerationManager();
            this._moderationTool = new ModerationTool();

            this._itemDataManager = new ItemDataManager();
            this._itemDataManager.Init();

            this._catalogFrontPageManager = new CatalogFrontPage();
            this._catalogManager          = new CatalogManager();
            this._catalogManager.Init(this._itemDataManager);

            this._televisionManager = new TelevisionManager();
            this._crackableManager  = new CrackableManager();
            this._crackableManager.Initialize(QuasarEnvironment.GetDatabaseManager().GetQueryReactor());
            this._furniMaticRewardsManager = new FurniMaticRewardsManager();
            this._furniMaticRewardsManager.Initialize(QuasarEnvironment.GetDatabaseManager().GetQueryReactor());

            this._craftingManager = new CraftingManager();
            this._craftingManager.Init();

            this._navigatorManager   = new NavigatorManager();
            this._roomManager        = new RoomManager();
            this._chatManager        = new ChatManager();
            this._groupManager       = new GroupManager();
            this._questManager       = new QuestManager();
            this._achievementManager = new AchievementManager();
            this._talentManager      = new TalentManager();
            this._talentManager.Initialize();
            this._talentTrackManager = new TalentTrackManager();

            this._landingViewManager = new LandingViewManager();
            this._gameDataManager    = new GameDataManager();

            this._globalUpdater = new ServerStatusUpdater();
            this._globalUpdater.Init();

            //this._languageLocale = new LanguageLocale();
            this._antiMutant = new AntiMutant();
            this._botManager = new BotManager();

            this._cacheManager  = new CacheManager();
            this._rewardManager = new RewardManager();

            this._badgeManager = new BadgeManager();
            this._badgeManager.Init();

            this.forummanager = new GroupForumManager();

            TraxSoundManager.Init(); // Added
            GetHallOfFame.getInstance().Load();

            this._permissionManager = new PermissionManager();
            this._permissionManager.Init();

            this._subscriptionManager = new SubscriptionManager();
            this._subscriptionManager.Init();

            HelperToolsManager.Init();

            this._targetedoffersManager = new TargetedOffersManager();
            this._targetedoffersManager.Initialize(QuasarEnvironment.GetDatabaseManager().GetQueryReactor());

            this._calendarManager = new CalendarManager();
            this._calendarManager.Init();
        }