summaryrefslogtreecommitdiff
path: root/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-01-20 23:32:34 +0500
committerilotterytea <iltsu@alright.party>2025-01-20 23:42:02 +0500
commit8ecc23455f36da01c373b99a536ecd326b26c01a (patch)
tree448977fed53ad8a04cf2c80357032c405b0ca1f8 /server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
parent8d8eb55d4f3ad98eba837e702ee79187f735f177 (diff)
feat: connection between server and game
Diffstat (limited to 'server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java')
-rw-r--r--server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java b/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
new file mode 100644
index 0000000..87dc17d
--- /dev/null
+++ b/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
@@ -0,0 +1,26 @@
+package kz.ilotterytea.frogartha.server;
+
+import kz.ilotterytea.frogartha.domain.Acknowledge;
+import kz.ilotterytea.frogartha.domain.Identity;
+import kz.ilotterytea.frogartha.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 FrogarthaServer server = FrogarthaServer.getInstance();
+
+ public static void handleIdentity(PlayerConnection player, Identity identity) {
+ if (server.getPlayers()
+ .stream()
+ .filter((x) -> x.getIdentity() != null)
+ .anyMatch((x) -> x.getIdentity().equals(identity) && x.getId() != player.getId())) {
+ server.kickConnection(player, PlayerKickException.loggedIn());
+ return;
+ }
+
+ player.setIdentity(identity);
+ player.send(new Acknowledge(player));
+ log.debug("Successfully identified {} for {}", identity, player);
+ }
+}