From b0f71c097631f6f9d595865c48f1ffd1990e8794 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sun, 5 Jan 2025 00:14:45 +0500 Subject: feat: established communication between game and server --- .../src/kz/ilotterytea/maxon/ServerHandlers.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 server/src/kz/ilotterytea/maxon/ServerHandlers.java (limited to 'server/src/kz/ilotterytea/maxon/ServerHandlers.java') 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); + } +} -- cgit v1.2.3