internal void RemovePlayer(IMessageBase messageBase) { Deregistration deregistration = (Deregistration)messageBase; int playerID = deregistration.UserId; Logger.Debug($"{playerID} wants to deregister"); bool success = PlayerData.Instance.RemovePlayer(playerID); if (success) { Logger.Info("Removing player " + playerID + " with sessionid " + _sessionIds[playerID]); SendReliable(new DeregistrationSuccess { UserId = playerID }); lock (_sessionIds) _sessionIds[playerID] = -1; PlayerIDManager.FreeID(playerID); } else { Logger.Warn("Could not remove player " + playerID); } StrategyManager.Instance.UpdatePlayerList(); }
private void _addPlayer(int playerID, int sessionId, string userName) { bool success = PlayerData.Instance.AddPlayer(playerID, userName); if (success) { lock (_sessionIds) _sessionIds[playerID] = sessionId; SendReliable(new RegistrationSuccess { UserId = playerID, Reregistration = false }); Logger.Info("New player registered with session id " + _sessionIds[playerID] + ". Giving Player id " + playerID); } else { PlayerIDManager.FreeID(playerID); Logger.Warn("Could not add PlayerData.Instance for player " + playerID); } }