public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { #region Params if (Params.Length < 2) { Session.SendWhisper("Comando inválido, use :banwpp <usuário>", 1); return; } string Chatter = Params[1].ToString(); GameClient TargetSession = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Chatter); bool BanFromMaking = false; if (Params.Length == 3) { if (Convert.ToString(Params[2]).ToLower().StartsWith("sim")) { BanFromMaking = true; } } #endregion #region Conditions if (TargetSession == null) { Session.SendWhisper("Alvo não encontrado!", 1); return; } #endregion #region Execute if (TargetSession.GetRoleplay().ChatRooms.Count > 0) { foreach (WebSocketChatRoom Chat in TargetSession.GetRoleplay().ChatRooms.Values) { if (Chat == null) { continue; } WebSocketChatManager.Disconnect(TargetSession, Chat.ChatName); } } Session.Shout("*Proíbe imediatamente " + TargetSession.GetHabbo().Username + " de se juntar ou criar Grupos de WhatsApp " + ((BanFromMaking) ? "" : "") + "!*", 23); TargetSession.SendWhisper("Você foi banido de se juntar a uma sala de bate-papo por um membro da equipe!", 1); TargetSession.GetRoleplay().BannedFromChatting = true; if (BanFromMaking) { TargetSession.SendWhisper("Você foi proibido de fazer uma sala de bate-papo por um membro da equipe!", 1); TargetSession.GetRoleplay().BannedFromMakingChat = true; } RoleplayManager.Shout(TargetSession, "*Pega meu " + RoleplayManager.GetPhoneName(TargetSession) + " e deleta o Aplicativo WhatsApp*", 4); #endregion }
public static void PerformShutDown(bool Crashed = true) { Console.Clear(); log.Info("Servidor desligando..."); Console.Title = "Plus Emulador: Desligando!"; if (!Crashed) { PlusEnvironment.GetGame().GetClientManager().SendMessage(new Communication.Packets.Outgoing.Rooms.Notifications.RoomNotificationComposer("[Alerta de Manutenção]", PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("shutdown_alert"), "disconnection", "ok", "event:")); } else { PlusEnvironment.GetGame().GetClientManager().SendMessage(new RoomNotificationComposer("[Alerta de Manutenção]", PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("shutdown_alert_crash"), "disconnection", "ok", "event:")); } GetGame().StopGameLoop(); Thread.Sleep(Crashed ? 6500 : 2500); GetConnectionManager().Destroy(); //Stop listening. GetGame().GetPacketManager().UnregisterAll(); //Unregister the packets. GetGame().GetPacketManager().WaitForAllToComplete(); FarmingManager.UpdateAllFarmingSpaces(); RoleplayManager.TimerManager.EndAllTimers(); RoleplayManager.TimerManager = null; GetGame().GetClientManager().CloseAll(); //Close all connections GetGame().GetRoomManager().Dispose(); //Stop the game loop. using (IQueryAdapter dbClient = _manager.GetQueryReactor()) { dbClient.RunQuery("TRUNCATE `catalog_marketplace_data`"); dbClient.RunQuery("UPDATE `users` SET online = '0', `auth_ticket` = NULL"); dbClient.RunQuery("UPDATE `rooms` SET `users_now` = '0' WHERE `users_now` > '0'"); dbClient.RunQuery("UPDATE `server_status` SET `users_online` = '0', `loaded_rooms` = '0', `environment_status` = '" + (Crashed ? 3 : 0) + "'"); } WebSocketChatManager.StopAllChats(); log.Info("Plus Emulador desligado com sucesso."); Thread.Sleep(1000); Environment.Exit(0); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { #region Params if (Params.Length < 2) { Session.SendWhisper("Comando inválido!", 1); return; } string InputtedChatName = Convert.ToString(Params[1]); WebSocketChatRoom NewChatRoom = WebSocketChatManager.GetChatByName(InputtedChatName.ToLower()); #endregion #region Conditions if (Session.GetRoleplay().BannedFromChatting) { Session.SendWhisper("Você está proibido de se juntar a qualquer Grupo do WhatsApp!", 1); return; } if (NewChatRoom == null) { Session.SendWhisper("O bate-papo não existe!", 1); return; } if (!Session.GetRoleplay().PhoneApps.Contains("whatsapp")) { Session.SendWhisper("Você precisa do Aplicativo Whatsapp para fazer isso! Digite :baixar whatsapp.", 1); return; } #endregion #region Execute PlusEnvironment.GetGame().GetWebEventManager().ExecuteWebEvent(Session, "event_chatroom", JsonConvert.SerializeObject(new Dictionary <object, object>() { { "action", "requestjoin" }, { "chatname", NewChatRoom.ChatName }, })); #endregion }
public void Disconnect(bool ForcedDisconnect) { if (LoggingOut) { return; } LoggingOut = true; try { #region WebSocket PlusEnvironment.GetGame().GetWebEventManager().CloseSocketByGameClient(((this.GetHabbo() == null) ? 0 : this.GetHabbo().Id)); if (GetRoleplay() != null) { foreach (WebSocketChatRoom ChatRoom in GetRoleplay().ChatRooms.Values) { if (ChatRoom == null) { continue; } WebSocketChatManager.Disconnect(this, ChatRoom.ChatName, false, null); } } #endregion if (GetRoomUser() != null && !ForcedDisconnect) { RoleplayManager.Chat(this, GetHabbo().Username + " irá sair em 10 segundos.", 1); GetRoomUser().ApplyEffect(95); if (GetHabbo() != null && GetHabbo().CurrentRoom != null) { GetHabbo().CurrentRoom.SendMessage(new SleepComposer(GetRoomUser(), true)); } GetRoomUser().CanWalk = false; GetRoomUser().ClearMovement(true); } if (GetRoleplay() != null) { if (GetRoleplay().UserDataHandler != null) { GetRoleplay().UserDataHandler.SaveFarmingData(); GetRoleplay().UserDataHandler.SaveCooldownData(); GetRoleplay().UserDataHandler.SaveData(); GetRoleplay().UserDataHandler = null; } } if (GetHabbo() != null) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) dbClient.RunQuery(GetHabbo().GetQueryString); } if (!ForcedDisconnect) { new Thread(() => { Thread.Sleep(8000); if (GetRoleplay() != null) { GetRoleplay().UserDataHandler = new UserDataHandler(this, GetRoleplay()); GetRoleplay().UserDataHandler.SaveFarmingData(); GetRoleplay().UserDataHandler.SaveCooldownData(); GetRoleplay().UserDataHandler.SaveData(); GetRoleplay().UserDataHandler = null; } if (GetHabbo() != null) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) dbClient.RunQuery(GetHabbo().GetQueryString); } EventManager.TriggerEvent("OnDisconnect", this); Thread.Sleep(1000); if (GetRoomUser() != null) { GetRoomUser().ApplyEffect(108); } Thread.Sleep(1000); if (GetHabbo() != null) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery(GetHabbo().GetQueryString); } GetHabbo().OnDisconnect(); } if (!_disconnected) { if (_connection != null) { _connection.Dispose(); } _disconnected = true; } }).Start(); } else { EventManager.TriggerEvent("OnDisconnect", this); if (GetHabbo() != null) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery(GetHabbo().GetQueryString); } GetHabbo().OnDisconnect(); } if (!_disconnected) { if (_connection != null) { _connection.Dispose(); } _disconnected = true; } } } catch (Exception e) { Logging.LogException(e.ToString()); } }
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 }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { #region Variables if (Params.Length < 2) { Session.SendWhisper("Comando inválido, use :delchat <nomedochat>", 1); return; } bool BanUserFromMaking = false; bool BanUserFromChatting = false; if (Params.Length >= 3) { if (Convert.ToString(Params[2]).ToLower().StartsWith("sim")) { BanUserFromMaking = true; } } if (Params.Length == 4) { if (Convert.ToString(Params[3]).ToLower().StartsWith("sim")) { BanUserFromChatting = true; } } string ChatName = Convert.ToString(Params[1]); #endregion #region Conditions if (!WebSocketChatManager.RunningChatRooms.ContainsKey(ChatName.ToLower())) { Session.SendWhisper("Este bate-papo '" + ChatName.ToLower() + "' não existe!", 1); return; } WebSocketChatRoom Chat = WebSocketChatManager.RunningChatRooms[ChatName.ToLower()]; if (Chat == null) { Session.SendWhisper("Ocorreu um erro, este bate-papo não existe!", 1); return; } #endregion #region Execute GameClient ChatOwner = null; if (Chat.ChatOwner > 0) { ChatOwner = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Chat.ChatOwner); using (IQueryAdapter DB = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { if (BanUserFromChatting) { if (ChatOwner == null) { DB.RunQuery("UPDATE rp_stats SET wchat_banned = '1' WHERE id = '" + Chat.ChatOwner + "'"); } else { ChatOwner.GetRoleplay().BannedFromChatting = true; ChatOwner.SendWhisper("Você foi impedido de poder se juntar a uma sala de bate-papo "); } } if (BanUserFromMaking) { if (ChatOwner == null) { DB.RunQuery("UPDATE rp_stats SET wchat_making_banned = '1' WHERE id = '" + Chat.ChatOwner + "'"); } else { ChatOwner.GetRoleplay().BannedFromMakingChat = true; ChatOwner.SendWhisper("Você foi impedido de poder se juntar a uma sala de bate-papo"); } } } } else { if (BanUserFromChatting || BanUserFromMaking) { Session.SendWhisper("Não havia nenhum proprietário para este bate-papo, então não tem ninguém para proibir", 1); } } Session.SendWhisper("Excluiu o bate-papo com sucesso '" + Chat.ChatName + "'. O dono foi notificado!"); if (ChatOwner != null) { ChatOwner.SendWhisper("Seu chat '" + Chat.ChatName + "' foi excluído por um membro da equipe!"); } WebSocketChatManager.DeleteChat(Chat); #endregion }