CLASS net/minecraft/class_3248 net/minecraft/server/network/ServerLoginNetworkHandler COMMENT The server login network handler. COMMENT COMMENT

It listens to packets on the netty event loop and is ticked on the COMMENT server thread simultaneously. COMMENT COMMENT @implSpec The vanilla implementation is created by a handshake network COMMENT handler. It first receives a hello packet from the client. If it is in COMMENT {@linkplain MinecraftServer#isOnlineMode() online mode}, it goes through COMMENT an additional authentication process. Then it optionally sends a network COMMENT compression packet. Finally, when it can accept the player (no player COMMENT UUID conflicts), it will accept the player by sending a login success COMMENT packet and then transitions the connection's packet listener to a {@link COMMENT ServerPlayNetworkHandler}. FIELD field_14156 loginTicks I FIELD field_14157 NEXT_AUTHENTICATOR_THREAD_ID Ljava/util/concurrent/atomic/AtomicInteger; FIELD field_14158 connection Lnet/minecraft/class_2535; FIELD field_14160 profile Lcom/mojang/authlib/GameProfile; FIELD field_14161 delayedPlayer Lnet/minecraft/class_3222; COMMENT The delayed player, waiting to join the server once the existing player COMMENT with the same UUID is gone. COMMENT COMMENT

This will only be non-{@code null} if the state is delay-accept, and is reset COMMENT to {@code null} once the player is accepted. FIELD field_14162 server Lnet/minecraft/server/MinecraftServer; FIELD field_14163 state Lnet/minecraft/class_3248$class_3249; FIELD field_14164 RANDOM Lnet/minecraft/class_5819; FIELD field_14165 serverId Ljava/lang/String; FIELD field_14166 LOGGER Lorg/slf4j/Logger; FIELD field_14167 nonce [B FIELD field_29779 TIMEOUT_TICKS I FIELD field_39020 MISSING_PUBLIC_KEY_TEXT Lnet/minecraft/class_2561; FIELD field_39021 INVALID_PUBLIC_KEY_SIGNATURE_TEXT Lnet/minecraft/class_2561; FIELD field_39022 INVALID_PUBLIC_KEY_TEXT Lnet/minecraft/class_2561; FIELD field_39023 publicKeyInfo Lnet/minecraft/class_7428; METHOD (Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/class_2535;)V ARG 1 server ARG 2 connection METHOD method_14375 toOfflineProfile (Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile; ARG 1 profile METHOD method_14380 disconnect (Lnet/minecraft/class_2561;)V ARG 1 reason METHOD method_14383 getConnectionInfo ()Ljava/lang/String; METHOD method_14384 acceptPlayer ()V COMMENT Creates the player to be added to the server and adds it to the server. COMMENT COMMENT

If a player with the same UUID is in the world, it will create the COMMENT player and transition to the delay accept state. COMMENT COMMENT @apiNote This method should only be called on the server thread. METHOD method_18785 tick ()V COMMENT Ticks this login network handler. COMMENT COMMENT

This accepts the player to the server if ready. If the state is delay COMMENT accept, it checks if the old player with the same UUID is gone and COMMENT admits the player. COMMENT COMMENT @apiNote This should only be called on the server thread. METHOD method_33800 addToServer (Lnet/minecraft/class_3222;)V ARG 1 player METHOD method_40084 (I)Z ARG 0 c METHOD method_40085 isValidName (Ljava/lang/String;)Z ARG 0 name METHOD method_43510 getVerifiedPublicKey (Lnet/minecraft/class_2915;Lcom/mojang/authlib/minecraft/MinecraftSessionService;Z)Lnet/minecraft/class_7428; ARG 0 packet ARG 1 minecraftSessionService ARG 2 shouldThrowOnMissingKey CLASS 1 METHOD method_14386 getClientAddress ()Ljava/net/InetAddress; CLASS class_3249 State CLASS class_7423 LoginException