summaryrefslogtreecommitdiff
path: root/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
blob: 7b4a868747543b8b76c8a708dd50635f9a9a449e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package kz.ilotterytea.frogartha.server;

import kz.ilotterytea.frogartha.domain.Identity;
import kz.ilotterytea.frogartha.domain.server.Acknowledge;
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(identity));
        log.debug("Successfully identified {} for {}", identity, player);
    }
}