Package net.minecraft.server.network
Class ServerLoginNetworkHandler
java.lang.Object
net.minecraft.server.network.ServerLoginNetworkHandler
- All Implemented Interfaces:
class_7633,PacketListener,ServerLoginPacketListener,ServerPacketListener
public class ServerLoginNetworkHandler
extends Object
implements class_7633, ServerLoginPacketListener
The server login network handler.
It listens to packets on the netty event loop and is ticked on the server thread simultaneously.
- Implementation Requirements:
- The vanilla implementation is created by a handshake network
handler. It first receives a hello packet from the client. If it is in
online mode, it goes through
an additional authentication process. Then it optionally sends a network
compression packet. Finally, when it can accept the player (no player
UUID conflicts), it will accept the player by sending a login success
packet and then transitions the connection's packet listener to a
ServerPlayNetworkHandler. - Mappings:
Namespace Name official agxintermediary net/minecraft/class_3248named net/minecraft/server/network/ServerLoginNetworkHandler
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static enum -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal ClientConnectionprivate @Nullable ServerPlayerEntityThe delayed player, waiting to join the server once the existing player with the same UUID is gone.private static final Textprivate static final Text(package private) static final org.slf4j.Loggerprivate intprivate static final Textprivate static final AtomicIntegerprivate final byte[](package private) @Nullable com.mojang.authlib.GameProfileprivate PlayerPublicKey.PublicKeyDataprivate static final Random(package private) final MinecraftServerprivate final String(package private) ServerLoginNetworkHandler.Stateprivate static final int -
Constructor Summary
ConstructorsConstructorDescriptionServerLoginNetworkHandler(MinecraftServer server, ClientConnection connection) -
Method Summary
Modifier and TypeMethodDescriptionvoidCreates the player to be added to the server and adds it to the server.private voidaddToServer(ServerPlayerEntity player) voiddisconnect(Text reason) Returns the connection this packet listener intends to listen to.private static @Nullable PlayerPublicKeygetVerifiedPublicKey(PlayerPublicKey.PublicKeyData publicKeyData, UUID playerUuid, SignatureVerifier servicesSignatureVerifier, boolean shouldThrowOnMissingKey) static booleanisValidName(String name) voidonDisconnected(Text reason) Called when the connection this listener listens to has disconnected.voidonHello(LoginHelloC2SPacket packet) voidonKey(LoginKeyC2SPacket packet) voidvoidtick()protected com.mojang.authlib.GameProfiletoOfflineProfile(com.mojang.authlib.GameProfile profile) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraft.network.listener.ServerPacketListener
shouldCrashOnException
-
Field Details
-
NEXT_AUTHENTICATOR_THREAD_ID
- Mappings:
Namespace Name Mixin selector official bLagx;b:Ljava/util/concurrent/atomic/AtomicInteger;intermediary field_14157Lnet/minecraft/class_3248;field_14157:Ljava/util/concurrent/atomic/AtomicInteger;named NEXT_AUTHENTICATOR_THREAD_IDLnet/minecraft/server/network/ServerLoginNetworkHandler;NEXT_AUTHENTICATOR_THREAD_ID:Ljava/util/concurrent/atomic/AtomicInteger;
-
LOGGER
static final org.slf4j.Logger LOGGER- Mappings:
Namespace Name Mixin selector official cLagx;c:Lorg/slf4j/Logger;intermediary field_14166Lnet/minecraft/class_3248;field_14166:Lorg/slf4j/Logger;named LOGGERLnet/minecraft/server/network/ServerLoginNetworkHandler;LOGGER:Lorg/slf4j/Logger;
-
TIMEOUT_TICKS
private static final int TIMEOUT_TICKS- See Also:
- Mappings:
Namespace Name Mixin selector official dLagx;d:Iintermediary field_29779Lnet/minecraft/class_3248;field_29779:Inamed TIMEOUT_TICKSLnet/minecraft/server/network/ServerLoginNetworkHandler;TIMEOUT_TICKS:I
-
RANDOM
- Mappings:
Namespace Name Mixin selector official eLagx;e:Lamj;intermediary field_14164Lnet/minecraft/class_3248;field_14164:Lnet/minecraft/class_5819;named RANDOMLnet/minecraft/server/network/ServerLoginNetworkHandler;RANDOM:Lnet/minecraft/util/math/random/Random;
-
MISSING_PUBLIC_KEY_TEXT
- Mappings:
Namespace Name Mixin selector official fLagx;f:Lro;intermediary field_39020Lnet/minecraft/class_3248;field_39020:Lnet/minecraft/class_2561;named MISSING_PUBLIC_KEY_TEXTLnet/minecraft/server/network/ServerLoginNetworkHandler;MISSING_PUBLIC_KEY_TEXT:Lnet/minecraft/text/Text;
-
INVALID_PUBLIC_KEY_SIGNATURE_TEXT
- Mappings:
Namespace Name Mixin selector official gLagx;g:Lro;intermediary field_39021Lnet/minecraft/class_3248;field_39021:Lnet/minecraft/class_2561;named INVALID_PUBLIC_KEY_SIGNATURE_TEXTLnet/minecraft/server/network/ServerLoginNetworkHandler;INVALID_PUBLIC_KEY_SIGNATURE_TEXT:Lnet/minecraft/text/Text;
-
INVALID_PUBLIC_KEY_TEXT
- Mappings:
Namespace Name Mixin selector official hLagx;h:Lro;intermediary field_39022Lnet/minecraft/class_3248;field_39022:Lnet/minecraft/class_2561;named INVALID_PUBLIC_KEY_TEXTLnet/minecraft/server/network/ServerLoginNetworkHandler;INVALID_PUBLIC_KEY_TEXT:Lnet/minecraft/text/Text;
-
nonce
private final byte[] nonce- Mappings:
Namespace Name Mixin selector official iLagx;i:[Bintermediary field_14167Lnet/minecraft/class_3248;field_14167:[Bnamed nonceLnet/minecraft/server/network/ServerLoginNetworkHandler;nonce:[B
-
server
- Mappings:
Namespace Name Mixin selector official jLagx;j:Lnet/minecraft/server/MinecraftServer;intermediary field_14162Lnet/minecraft/class_3248;field_14162:Lnet/minecraft/server/MinecraftServer;named serverLnet/minecraft/server/network/ServerLoginNetworkHandler;server:Lnet/minecraft/server/MinecraftServer;
-
connection
- Mappings:
Namespace Name Mixin selector official aLagx;a:Lqv;intermediary field_14158Lnet/minecraft/class_3248;field_14158:Lnet/minecraft/class_2535;named connectionLnet/minecraft/server/network/ServerLoginNetworkHandler;connection:Lnet/minecraft/network/ClientConnection;
-
state
- Mappings:
Namespace Name Mixin selector official kLagx;k:Lagx$b;intermediary field_14163Lnet/minecraft/class_3248;field_14163:Lnet/minecraft/class_3248$class_3249;named stateLnet/minecraft/server/network/ServerLoginNetworkHandler;state:Lnet/minecraft/server/network/ServerLoginNetworkHandler$State;
-
loginTicks
private int loginTicks- Mappings:
Namespace Name Mixin selector official lLagx;l:Iintermediary field_14156Lnet/minecraft/class_3248;field_14156:Inamed loginTicksLnet/minecraft/server/network/ServerLoginNetworkHandler;loginTicks:I
-
profile
- Mappings:
Namespace Name Mixin selector official mLagx;m:Lcom/mojang/authlib/GameProfile;intermediary field_14160Lnet/minecraft/class_3248;field_14160:Lcom/mojang/authlib/GameProfile;named profileLnet/minecraft/server/network/ServerLoginNetworkHandler;profile:Lcom/mojang/authlib/GameProfile;
-
serverId
- See Also:
- Mappings:
Namespace Name Mixin selector official nLagx;n:Ljava/lang/String;intermediary field_14165Lnet/minecraft/class_3248;field_14165:Ljava/lang/String;named serverIdLnet/minecraft/server/network/ServerLoginNetworkHandler;serverId:Ljava/lang/String;
-
delayedPlayer
The delayed player, waiting to join the server once the existing player with the same UUID is gone.This will only be non-
nullif the state is delay-accept, and is reset tonullonce the player is accepted.- Mappings:
Namespace Name Mixin selector official oLagx;o:Lagd;intermediary field_14161Lnet/minecraft/class_3248;field_14161:Lnet/minecraft/class_3222;named delayedPlayerLnet/minecraft/server/network/ServerLoginNetworkHandler;delayedPlayer:Lnet/minecraft/server/network/ServerPlayerEntity;
-
publicKeyData
- Mappings:
Namespace Name Mixin selector official pLagx;p:Lbua$a;intermediary field_39743Lnet/minecraft/class_3248;field_39743:Lnet/minecraft/class_7428$class_7443;named publicKeyDataLnet/minecraft/server/network/ServerLoginNetworkHandler;publicKeyData:Lnet/minecraft/network/encryption/PlayerPublicKey$PublicKeyData;
-
-
Constructor Details
-
ServerLoginNetworkHandler
- Mappings:
Namespace Name Mixin selector official <init>Lagx;<init>(Lnet/minecraft/server/MinecraftServer;Lqv;)Vintermediary <init>Lnet/minecraft/class_3248;<init>(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/class_2535;)Vnamed <init>Lnet/minecraft/server/network/ServerLoginNetworkHandler;<init>(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/network/ClientConnection;)V
-
-
Method Details
-
tick
public void tick()- Specified by:
tickin interfaceclass_7633- Mappings:
Namespace Name Mixin selector official cLrd;c()Vintermediary method_18784Lnet/minecraft/class_7633;method_18784()Vnamed tickLnet/minecraft/class_7633;tick()V
-
getConnection
Returns the connection this packet listener intends to listen to.- Specified by:
getConnectionin interfacePacketListener- See Also:
- Mappings:
Namespace Name Mixin selector official aLra;a()Lqv;intermediary method_2872Lnet/minecraft/class_2547;method_2872()Lnet/minecraft/class_2535;named getConnectionLnet/minecraft/network/listener/PacketListener;getConnection()Lnet/minecraft/network/ClientConnection;
-
disconnect
- Mappings:
Namespace Name Mixin selector official bLagx;b(Lro;)Vintermediary method_14380Lnet/minecraft/class_3248;method_14380(Lnet/minecraft/class_2561;)Vnamed disconnectLnet/minecraft/server/network/ServerLoginNetworkHandler;disconnect(Lnet/minecraft/text/Text;)V
-
acceptPlayer
public void acceptPlayer()Creates the player to be added to the server and adds it to the server.If a player with the same UUID is in the world, it will create the player and transition to the delay accept state.
- API Note:
- This method should only be called on the server thread.
- Mappings:
Namespace Name Mixin selector official dLagx;d()Vintermediary method_14384Lnet/minecraft/class_3248;method_14384()Vnamed acceptPlayerLnet/minecraft/server/network/ServerLoginNetworkHandler;acceptPlayer()V
-
addToServer
- Mappings:
Namespace Name Mixin selector official aLagx;a(Lagd;)Vintermediary method_33800Lnet/minecraft/class_3248;method_33800(Lnet/minecraft/class_3222;)Vnamed addToServerLnet/minecraft/server/network/ServerLoginNetworkHandler;addToServer(Lnet/minecraft/server/network/ServerPlayerEntity;)V
-
onDisconnected
Called when the connection this listener listens to has disconnected. Can be used to display the disconnection reason.- Specified by:
onDisconnectedin interfacePacketListener- Parameters:
reason- the reason of disconnection; may be a generic message- Mappings:
Namespace Name Mixin selector official aLra;a(Lro;)Vintermediary method_10839Lnet/minecraft/class_2547;method_10839(Lnet/minecraft/class_2561;)Vnamed onDisconnectedLnet/minecraft/network/listener/PacketListener;onDisconnected(Lnet/minecraft/text/Text;)V
-
getConnectionInfo
- Mappings:
Namespace Name Mixin selector official eLagx;e()Ljava/lang/String;intermediary method_14383Lnet/minecraft/class_3248;method_14383()Ljava/lang/String;named getConnectionInfoLnet/minecraft/server/network/ServerLoginNetworkHandler;getConnectionInfo()Ljava/lang/String;
-
getVerifiedPublicKey
@Nullable private static @Nullable PlayerPublicKey getVerifiedPublicKey(@Nullable PlayerPublicKey.PublicKeyData publicKeyData, UUID playerUuid, SignatureVerifier servicesSignatureVerifier, boolean shouldThrowOnMissingKey) throws ServerLoginNetworkHandler.LoginException - Throws:
ServerLoginNetworkHandler.LoginException- Mappings:
Namespace Name Mixin selector official aLagx;a(Lbua$a;Ljava/util/UUID;Laml;Z)Lbua;intermediary method_43510Lnet/minecraft/class_3248;method_43510(Lnet/minecraft/class_7428$class_7443;Ljava/util/UUID;Lnet/minecraft/class_7500;Z)Lnet/minecraft/class_7428;named getVerifiedPublicKeyLnet/minecraft/server/network/ServerLoginNetworkHandler;getVerifiedPublicKey(Lnet/minecraft/network/encryption/PlayerPublicKey$PublicKeyData;Ljava/util/UUID;Lnet/minecraft/network/encryption/SignatureVerifier;Z)Lnet/minecraft/network/encryption/PlayerPublicKey;
-
onHello
- Specified by:
onHelloin interfaceServerLoginPacketListener- Mappings:
Namespace Name Mixin selector official aLzr;a(Lzt;)Vintermediary method_12641Lnet/minecraft/class_2911;method_12641(Lnet/minecraft/class_2915;)Vnamed onHelloLnet/minecraft/network/listener/ServerLoginPacketListener;onHello(Lnet/minecraft/network/packet/c2s/login/LoginHelloC2SPacket;)V
-
isValidName
- Mappings:
Namespace Name Mixin selector official aLagx;a(Ljava/lang/String;)Zintermediary method_40085Lnet/minecraft/class_3248;method_40085(Ljava/lang/String;)Znamed isValidNameLnet/minecraft/server/network/ServerLoginNetworkHandler;isValidName(Ljava/lang/String;)Z
-
onKey
- Specified by:
onKeyin interfaceServerLoginPacketListener- Mappings:
Namespace Name Mixin selector official aLzr;a(Lzu;)Vintermediary method_12642Lnet/minecraft/class_2911;method_12642(Lnet/minecraft/class_2917;)Vnamed onKeyLnet/minecraft/network/listener/ServerLoginPacketListener;onKey(Lnet/minecraft/network/packet/c2s/login/LoginKeyC2SPacket;)V
-
onQueryResponse
- Specified by:
onQueryResponsein interfaceServerLoginPacketListener- Mappings:
Namespace Name Mixin selector official aLzr;a(Lzs;)Vintermediary method_12640Lnet/minecraft/class_2911;method_12640(Lnet/minecraft/class_2913;)Vnamed onQueryResponseLnet/minecraft/network/listener/ServerLoginPacketListener;onQueryResponse(Lnet/minecraft/network/packet/c2s/login/LoginQueryResponseC2SPacket;)V
-
toOfflineProfile
protected com.mojang.authlib.GameProfile toOfflineProfile(com.mojang.authlib.GameProfile profile) - Mappings:
Namespace Name Mixin selector official aLagx;a(Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile;intermediary method_14375Lnet/minecraft/class_3248;method_14375(Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile;named toOfflineProfileLnet/minecraft/server/network/ServerLoginNetworkHandler;toOfflineProfile(Lcom/mojang/authlib/GameProfile;)Lcom/mojang/authlib/GameProfile;
-