diff options
Diffstat (limited to 'server/src/kz/ilotterytea/maxon/ServerHandlers.java')
| -rw-r--r-- | server/src/kz/ilotterytea/maxon/ServerHandlers.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/server/src/kz/ilotterytea/maxon/ServerHandlers.java b/server/src/kz/ilotterytea/maxon/ServerHandlers.java new file mode 100644 index 0000000..43468b3 --- /dev/null +++ b/server/src/kz/ilotterytea/maxon/ServerHandlers.java @@ -0,0 +1,27 @@ +package kz.ilotterytea.maxon; + +import kz.ilotterytea.maxon.shared.Acknowledge; +import kz.ilotterytea.maxon.shared.Identity; +import kz.ilotterytea.maxon.shared.exceptions.PlayerKickException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ServerHandlers { + private static final Logger log = LoggerFactory.getLogger(ServerHandlers.class); + private static final MaxonServer server = MaxonServer.getInstance(); + + public static void handleIdentity(PlayerConnection connection, Identity identity) { + if (server.getPlayerConnections() + .stream() + .filter((x) -> x.getIdentity() != null) + .anyMatch((x) -> x.getIdentity().equals(identity) && x.getId() != connection.getId()) + ) { + server.kickConnection(connection, PlayerKickException.loggedIn()); + return; + } + + connection.setIdentity(identity); + connection.send(new Acknowledge(identity)); + log.debug("Successfully identified {} for {}", identity, connection); + } +} |
