internal IResponse registerNewPlayer() { if (game.status == Status.FINISHED) { this.game = new Game(this.game.id + 1); BroadcastHandler.getBroadcastHandler().removeAllWebsockets(); return(registerPlayer()); } if (game.allowedToRegister(config.maxUsers)) { return(registerPlayer()); } else { return(new ErrorResponse("Game not open for registration or max user count reached!")); } }
internal void unregisterPlayer(long playerID) { Player player = game.players.Find(x => x.id == playerID ); if (player == null) { log.Info($"No player with ID {playerID} found"); return; } log.Info($"Removing player {player.id} from the game"); if (player.isAdmin) { log.Info("Player is admin, removing all players"); BroadcastHandler broadcastHandler = BroadcastHandler.getBroadcastHandler(); broadcastHandler.sendResponseToAll(new GameClosedResponse()); game.close(); timer.Stop(); } game.players.Remove(player); }