diff options
| author | ilotterytea <iltsu@alright.party> | 2025-01-20 23:32:34 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-01-20 23:42:02 +0500 |
| commit | 8ecc23455f36da01c373b99a536ecd326b26c01a (patch) | |
| tree | 448977fed53ad8a04cf2c80357032c405b0ca1f8 /server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java | |
| parent | 8d8eb55d4f3ad98eba837e702ee79187f735f177 (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.java | 26 |
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); + } +} |
