/** * Respond player. * * @param p the p * @param connecting the connecting flag */ public void respondPlayer(Player p, boolean connecting) { if (!connectedPlayers.containsKey(p)) { return; } if (connecting) { boolean isHost = p.isHost(); HostedConnection hc = connectedPlayers.get(p); checkPlayersName(p); PlayerAcceptedMessage joiningPlayer = new PlayerAcceptedMessage(p, ServerHub.getPlayers(), isHost, true); hc.setAttribute("PlayerObject", p); hc.setAttribute("PlayerID", p.getID()); hc.setAttribute("PlayerName", p.getName()); gameServer.broadcast(Filters.equalTo(hc), joiningPlayer); final String connectMsg = "#" + p.getID() + "/" + p.getName() + " joined server."; logger.log(Level.INFO, connectMsg, joiningPlayer); // Collection<HostedConnection> connections = gameServer.getConnections(); for (Map.Entry<Player, HostedConnection> entrySet : connectedPlayers.entrySet()) { Player player = entrySet.getKey(); HostedConnection connection = entrySet.getValue(); if (player != null && !player.equals(p) && connection != null) { isHost = player.isHost(); PlayerAcceptedMessage otherPlayer = new PlayerAcceptedMessage(p, ServerHub.getPlayers(), isHost, false); gameServer.broadcast(Filters.equalTo(connection), otherPlayer); final String othersMsg = "Told #" + player.getID() + "/" + player.getName() + " that #" + p.getID() + "/" + p.getName() + " joined server."; logger.log(Level.INFO, othersMsg, joiningPlayer); } } } else { HostedConnection hc = connectedPlayers.get(p); PlayerLeavingMessage plm = new PlayerLeavingMessage(p); gameServer.broadcast(Filters.notEqualTo(hc), plm); final String leavingMsg = "#" + p.getID() + "/" + p.getName() + " left server."; logger.log(Level.INFO, leavingMsg, plm); connectedPlayers.remove(p); } }
/** Enter level. */ public void enterLevel() { Player hostPlayer = ServerHub.getHostPlayer(); host = connectedPlayers.get(hostPlayer); final String hostMsg = "#" + hostPlayer.getID() + "/" + hostPlayer.getName() + " is host!"; logger.log(Level.INFO, hostMsg, hostPlayer); for (Map.Entry<Player, HostedConnection> entrySet : connectedPlayers.entrySet()) { Player player = entrySet.getKey(); final String playerMsg = "#" + player.getID() + "/" + player.getName(); logger.log(Level.INFO, playerMsg, player); } serverState = ServerState.INGAME; gameServer.addMessageListener( gameplayListener, PlanetActionMessage.class, GeneralActionMessage.class); }
private void checkPlayersName(Player p) { String name = p.getName(); for (Map.Entry<Player, HostedConnection> entrySet : connectedPlayers.entrySet()) { Player player = entrySet.getKey(); if (player.getName().equals(name) && p != player) { long rand = System.currentTimeMillis() % 2000; String s = rand + player.getName(); s = s.substring(0, s.length() / 2); s = "" + s.hashCode(); s = s.substring(s.length() / 2); p.getState().name = ("" + s); return; } } }