summaryrefslogtreecommitdiff
path: root/server/src/main/java/kz/ilotterytea/frogartha/server/ServerHandlers.java
blob: 7ad2f25bbc84148025b948ed9e5fb984f11a7d1e (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(Acknowledge.AcknowledgeCode.IDENTIFIED));
        log.debug("Successfully identified {} for {}", identity, player);
    }
}