public void DeleteCharacterHandler(GameSession session, CharacterDeleteReqMessage message) { Logger.ForAccount(session) .Information("Removing character {slot}", message.Slot); var plr = session.Player; if (plr == null) { return; } // Prevents player from deleting characters while playing if (plr.Room?.Id > 0 && plr.Room?.GameState != GameState.Waiting && plr.Room?.SubGameState != GameTimeState.HalfTime && plr.RoomInfo.State != PlayerState.Lobby) { session.SendAsync(new ServerResultAckMessage(ServerResult.DeleteCharacterFailed)); return; } try { session.Player?.CharacterManager?.Remove(message.Slot); } catch (Exception ex) { Logger.ForAccount(session).Error(ex.Message); session.SendAsync(new ServerResultAckMessage(ServerResult.DeleteCharacterFailed)); } }
public void DeleteCharacterHandler(GameSession session, CharacterDeleteReqMessage message) { Logger.ForAccount(session) .Information("Removing character {slot}", message.Slot); try { session.Player?.CharacterManager?.Remove(message.Slot); } catch (CharacterException ex) { Logger.ForAccount(session) .Error(ex.Message); session.SendAsync(new ServerResultAckMessage(ServerResult.DeleteCharacterFailed)); } }