public void Dispose() { SendPacket(new CloseConnectionComposer()); if (!mDisposed) { isCrashed = false; mDisposed = true; /* TODO: Needs reviewing */ try { if (ProcessTask != null && ProcessTask.IsCompleted) { ProcessTask.Dispose(); } } catch { } if (ActiveTrades.Count > 0) { ActiveTrades.Clear(); } TonerData = null; MoodlightData = null; if (MutedUsers.Count > 0) { MutedUsers.Clear(); } if (Tents.Count > 0) { Tents.Clear(); } if (UsersWithRights.Count > 0) { UsersWithRights.Clear(); } if (_gameManager != null) { _gameManager.Dispose(); _gameManager = null; } if (_freeze != null) { _freeze.Dispose(); _freeze = null; } if (_soccer != null) { _soccer.Dispose(); _soccer = null; } if (_banzai != null) { _banzai.Dispose(); _banzai = null; } if (_gamemap != null) { _gamemap.Dispose(); _gamemap = null; } if (_gameItemHandler != null) { _gameItemHandler.Dispose(); _gameItemHandler = null; } // Room Data? if (teambanzai != null) { teambanzai.Dispose(); teambanzai = null; } if (teamfreeze != null) { teamfreeze.Dispose(); teamfreeze = null; } if (_roomUserManager != null) { _roomUserManager.Dispose(); _roomUserManager = null; } if (_roomItemHandling != null) { _roomItemHandling.Dispose(); _roomItemHandling = null; } if (_wordFilterList.Count > 0) { _wordFilterList.Clear(); } if (_filterComponent != null) { _filterComponent.Cleanup(); } if (_wiredComponent != null) { _wiredComponent.Cleanup(); } if (_bansComponent != null) { _bansComponent.Cleanup(); } if (_tradingComponent != null) { _tradingComponent.Cleanup(); } } }
public void Dispose() { SendMessage(new CloseConnectionComposer()); if (!mDisposed) { isCrashed = false; mDisposed = true; try { if (ProcessTask != null && ProcessTask.IsCompleted) { ProcessTask.Dispose(); } } catch { } GetRoomItemHandler().SaveFurniture(); using (IQueryAdapter dbClient = CloudServer.GetDatabaseManager().GetQueryReactor()) { dbClient.runFastQuery("UPDATE `rooms` SET `users_now` = '0' WHERE `id` = '" + Id + "' LIMIT 1"); } if (_roomUserManager.PetCount > 0) { _roomUserManager.UpdatePets(); } SaveAI(); UsersNow = 0; RoomData.UsersNow = 0; UsersWithRights.Clear(); Bans.Clear(); MutedUsers.Clear(); Tents.Clear(); TonerData = null; MoodlightData = null; _filterComponent.Cleanup(); _wiredComponent.Cleanup(); if (_gameItemHandler != null) { _gameItemHandler.Dispose(); } if (_gameManager != null) { _gameManager.Dispose(); } if (_freeze != null) { _freeze.Dispose(); } if (_banzai != null) { _banzai.Dispose(); } if (_soccer != null) { _soccer.Dispose(); } if (_gamemap != null) { _gamemap.Dispose(); } if (_roomUserManager != null) { _roomUserManager.Dispose(); } if (_roomItemHandling != null) { _roomItemHandling.Dispose(); } if (_bansComponent != null) { _bansComponent.Cleanup(); } if (ActiveTrades.Count > 0) { ActiveTrades.Clear(); } } }