Search in sources :

Example 1 with ServerLauncher

use of games.strategy.engine.framework.startup.launcher.ServerLauncher in project triplea by triplea-game.

the class ServerModel method getLauncher.

public Optional<ServerLauncher> getLauncher() {
    synchronized (this) {
        disallowRemoveConnections();
        // -1 since we dont count outselves
        final int clientCount = serverMessenger.getNodes().size() - 1;
        final Map<String, INode> remotePlayers = new HashMap<>();
        for (final Entry<String, String> entry : playersToNodeListing.entrySet()) {
            final String playedBy = entry.getValue();
            if (playedBy == null) {
                return Optional.empty();
            }
            if (!playedBy.equals(serverMessenger.getLocalNode().getName())) {
                serverMessenger.getNodes().stream().filter(node -> node.getName().equals(playedBy)).findAny().ifPresent(node -> remotePlayers.put(entry.getKey(), node));
            }
        }
        return Optional.of(new ServerLauncher(clientCount, remoteMessenger, channelMessenger, serverMessenger, gameSelectorModel, getPlayerListingInternal(), remotePlayers, this, headless));
    }
}
Also used : INode(games.strategy.net.INode) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) ServerLauncher(games.strategy.engine.framework.startup.launcher.ServerLauncher)

Aggregations

ServerLauncher (games.strategy.engine.framework.startup.launcher.ServerLauncher)1 INode (games.strategy.net.INode)1 HashMap (java.util.HashMap)1 LinkedHashMap (java.util.LinkedHashMap)1