summaryrefslogtreecommitdiff
path: root/server/src/kz/ilotterytea/maxon/ServerHandlers.java
blob: 43468b344059d7a4a06ba2cb783d59e166ece0bc (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
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);
    }
}