summaryrefslogtreecommitdiff
path: root/server/src/kz/ilotterytea/maxon/ServerHandlers.java
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/kz/ilotterytea/maxon/ServerHandlers.java')
-rw-r--r--server/src/kz/ilotterytea/maxon/ServerHandlers.java27
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);
+ }
+}