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
14
Source : ConnectionManager.java
with Apache License 2.0
from Minestom
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);
}
});
}