ConnectionState.PLAY

Here are the examples of the java api ConnectionState.PLAY taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

1 Examples 7

14 Source : ConnectionManager.java
with Apache License 2.0
from Minestom

/**
 * Calls the player initialization callbacks and the event {@link AsyncPlayerPreLoginEvent}.
 * <p>
 * Sends a {@link LoginSuccessPacket} if successful (not kicked)
 * and change the connection state to {@link ConnectionState#PLAY}.
 *
 * @param player   the player
 * @param register true to register the newly created player in {@link ConnectionManager} lists
 */
public void startPlayState(@NotNull Player player, boolean register) {
    // Init player (register events)
    for (Consumer<Player> playerInitialization : getPlayerInitializations()) {
        playerInitialization.accept(player);
    }
    AsyncUtils.runAsync(() -> {
        String username = player.getUsername();
        UUID uuid = player.getUuid();
        // Call pre login event
        AsyncPlayerPreLoginEvent asyncPlayerPreLoginEvent = new AsyncPlayerPreLoginEvent(player, username, uuid);
        player.callEvent(AsyncPlayerPreLoginEvent.clreplaced, asyncPlayerPreLoginEvent);
        // Close the player channel if he has been disconnected (kick)
        final boolean online = player.isOnline();
        if (!online) {
            final PlayerConnection playerConnection = player.getPlayerConnection();
            if (playerConnection instanceof NettyPlayerConnection) {
                ((NettyPlayerConnection) playerConnection).getChannel().flush();
            }
            // playerConnection.disconnect();
            return;
        }
        // Change UUID/Username based on the event
        {
            final String eventUsername = asyncPlayerPreLoginEvent.getUsername();
            final UUID eventUuid = asyncPlayerPreLoginEvent.getPlayerUuid();
            if (!player.getUsername().equals(eventUsername)) {
                player.setUsernameField(eventUsername);
                username = eventUsername;
            }
            if (!player.getUuid().equals(eventUuid)) {
                player.setUuid(eventUuid);
                uuid = eventUuid;
            }
        }
        // Send login success packet
        {
            final PlayerConnection connection = player.getPlayerConnection();
            LoginSuccessPacket loginSuccessPacket = new LoginSuccessPacket(uuid, username);
            if (connection instanceof NettyPlayerConnection) {
                ((NettyPlayerConnection) connection).writeAndFlush(loginSuccessPacket);
            } else {
                connection.sendPacket(loginSuccessPacket);
            }
            connection.setConnectionState(ConnectionState.PLAY);
        }
        // Add the player to the waiting list
        addWaitingPlayer(player);
        if (register) {
            registerPlayer(player);
        }
    });
}