Class ServerLoginNetworkHandler

java.lang.Object
net.minecraft.server.network.ServerLoginNetworkHandler
All Implemented Interfaces:
PacketListener, ServerCookieResponsePacketListener, ServerCrashSafePacketListener, ServerLoginPacketListener, ServerPacketListener, TickablePacketListener

public class ServerLoginNetworkHandler extends Object implements ServerLoginPacketListener, TickablePacketListener
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
named net/minecraft/server/network/ServerLoginNetworkHandler
intermediary net/minecraft/class_3248
official ash
  • Field Details

    • NEXT_AUTHENTICATOR_THREAD_ID

      private static final AtomicInteger NEXT_AUTHENTICATOR_THREAD_ID
      Mappings:
      Namespace Name Mixin selector
      named NEXT_AUTHENTICATOR_THREAD_ID Lnet/minecraft/server/network/ServerLoginNetworkHandler;NEXT_AUTHENTICATOR_THREAD_ID:Ljava/util/concurrent/atomic/AtomicInteger;
      intermediary field_14157 Lnet/minecraft/class_3248;field_14157:Ljava/util/concurrent/atomic/AtomicInteger;
      official b Lash;b:Ljava/util/concurrent/atomic/AtomicInteger;
    • LOGGER

      static final Logger LOGGER
      Mappings:
      Namespace Name Mixin selector
      named LOGGER Lnet/minecraft/server/network/ServerLoginNetworkHandler;LOGGER:Lorg/slf4j/Logger;
      intermediary field_14166 Lnet/minecraft/class_3248;field_14166:Lorg/slf4j/Logger;
      official c Lash;c:Lorg/slf4j/Logger;
    • TIMEOUT_TICKS

      private static final int TIMEOUT_TICKS
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named TIMEOUT_TICKS Lnet/minecraft/server/network/ServerLoginNetworkHandler;TIMEOUT_TICKS:I
      intermediary field_29779 Lnet/minecraft/class_3248;field_29779:I
      official d Lash;d:I
    • nonce

      private final byte[] nonce
      Mappings:
      Namespace Name Mixin selector
      named nonce Lnet/minecraft/server/network/ServerLoginNetworkHandler;nonce:[B
      intermediary field_14167 Lnet/minecraft/class_3248;field_14167:[B
      official e Lash;e:[B
    • server

      final MinecraftServer server
      Mappings:
      Namespace Name Mixin selector
      named server Lnet/minecraft/server/network/ServerLoginNetworkHandler;server:Lnet/minecraft/server/MinecraftServer;
      intermediary field_14162 Lnet/minecraft/class_3248;field_14162:Lnet/minecraft/server/MinecraftServer;
      official f Lash;f:Lnet/minecraft/server/MinecraftServer;
    • connection

      final ClientConnection connection
      Mappings:
      Namespace Name Mixin selector
      named connection Lnet/minecraft/server/network/ServerLoginNetworkHandler;connection:Lnet/minecraft/network/ClientConnection;
      intermediary field_14158 Lnet/minecraft/class_3248;field_14158:Lnet/minecraft/class_2535;
      official g Lash;g:Lwk;
    • state

      private volatile ServerLoginNetworkHandler.State state
      Mappings:
      Namespace Name Mixin selector
      named state Lnet/minecraft/server/network/ServerLoginNetworkHandler;state:Lnet/minecraft/server/network/ServerLoginNetworkHandler$State;
      intermediary field_14163 Lnet/minecraft/class_3248;field_14163:Lnet/minecraft/class_3248$class_3249;
      official h Lash;h:Lash$a;
    • loginTicks

      private int loginTicks
      Mappings:
      Namespace Name Mixin selector
      named loginTicks Lnet/minecraft/server/network/ServerLoginNetworkHandler;loginTicks:I
      intermediary field_14156 Lnet/minecraft/class_3248;field_14156:I
      official i Lash;i:I
    • profileName

      Mappings:
      Namespace Name Mixin selector
      named profileName Lnet/minecraft/server/network/ServerLoginNetworkHandler;profileName:Ljava/lang/String;
      intermediary field_45028 Lnet/minecraft/class_3248;field_45028:Ljava/lang/String;
      official j Lash;j:Ljava/lang/String;
    • profile

      @Nullable private @Nullable com.mojang.authlib.GameProfile profile
      Mappings:
      Namespace Name Mixin selector
      named profile Lnet/minecraft/server/network/ServerLoginNetworkHandler;profile:Lcom/mojang/authlib/GameProfile;
      intermediary field_45029 Lnet/minecraft/class_3248;field_45029:Lcom/mojang/authlib/GameProfile;
      official k Lash;k:Lcom/mojang/authlib/GameProfile;
    • serverId

      private final String serverId
      See Also:
      Mappings:
      Namespace Name Mixin selector
      named serverId Lnet/minecraft/server/network/ServerLoginNetworkHandler;serverId:Ljava/lang/String;
      intermediary field_14165 Lnet/minecraft/class_3248;field_14165:Ljava/lang/String;
      official l Lash;l:Ljava/lang/String;
    • transferred

      private final boolean transferred
      Mappings:
      Namespace Name Mixin selector
      named transferred Lnet/minecraft/server/network/ServerLoginNetworkHandler;transferred:Z
      intermediary field_48275 Lnet/minecraft/class_3248;field_48275:Z
      official m Lash;m:Z
  • Constructor Details

    • ServerLoginNetworkHandler

      public ServerLoginNetworkHandler(MinecraftServer server, ClientConnection connection, boolean transferred)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/server/network/ServerLoginNetworkHandler;<init>(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/network/ClientConnection;Z)V
      intermediary <init> Lnet/minecraft/class_3248;<init>(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/class_2535;Z)V
      official <init> Lash;<init>(Lnet/minecraft/server/MinecraftServer;Lwk;Z)V
  • Method Details

    • tick

      public void tick()
      Ticks this packet listener on the game engine thread. The listener is responsible for synchronizing between the game engine and netty event loop threads.
      Specified by:
      tick in interface TickablePacketListener
      Mappings:
      Namespace Name Mixin selector
      named tick Lnet/minecraft/network/listener/TickablePacketListener;tick()V
      intermediary method_18784 Lnet/minecraft/class_7633;method_18784()V
      official d Lxd;d()V
    • isConnectionOpen

      public boolean isConnectionOpen()
      Specified by:
      isConnectionOpen in interface PacketListener
      Mappings:
      Namespace Name Mixin selector
      named isConnectionOpen Lnet/minecraft/network/listener/PacketListener;isConnectionOpen()Z
      intermediary method_48106 Lnet/minecraft/class_2547;method_48106()Z
      official c Lwv;c()Z
    • disconnect

      public void disconnect(Text reason)
      Mappings:
      Namespace Name Mixin selector
      named disconnect Lnet/minecraft/server/network/ServerLoginNetworkHandler;disconnect(Lnet/minecraft/text/Text;)V
      intermediary method_14380 Lnet/minecraft/class_3248;method_14380(Lnet/minecraft/class_2561;)V
      official b Lash;b(Lxp;)V
    • hasPlayerWithId

      private boolean hasPlayerWithId(com.mojang.authlib.GameProfile profile)
      Mappings:
      Namespace Name Mixin selector
      named hasPlayerWithId Lnet/minecraft/server/network/ServerLoginNetworkHandler;hasPlayerWithId(Lcom/mojang/authlib/GameProfile;)Z
      intermediary method_52416 Lnet/minecraft/class_3248;method_52416(Lcom/mojang/authlib/GameProfile;)Z
      official a Lash;a(Lcom/mojang/authlib/GameProfile;)Z
    • onDisconnected

      public void onDisconnected(Text reason)
      Called when the connection this listener listens to has disconnected. Can be used to display the disconnection reason.
      Specified by:
      onDisconnected in interface PacketListener
      Parameters:
      reason - the reason of disconnection; may be a generic message
      Mappings:
      Namespace Name Mixin selector
      named onDisconnected Lnet/minecraft/network/listener/PacketListener;onDisconnected(Lnet/minecraft/text/Text;)V
      intermediary method_10839 Lnet/minecraft/class_2547;method_10839(Lnet/minecraft/class_2561;)V
      official a Lwv;a(Lxp;)V
    • getConnectionInfo

      public String getConnectionInfo()
      Mappings:
      Namespace Name Mixin selector
      named getConnectionInfo Lnet/minecraft/server/network/ServerLoginNetworkHandler;getConnectionInfo()Ljava/lang/String;
      intermediary method_14383 Lnet/minecraft/class_3248;method_14383()Ljava/lang/String;
      official e Lash;e()Ljava/lang/String;
    • onHello

      public void onHello(LoginHelloC2SPacket packet)
      Specified by:
      onHello in interface ServerLoginPacketListener
      Mappings:
      Namespace Name Mixin selector
      named onHello Lnet/minecraft/network/listener/ServerLoginPacketListener;onHello(Lnet/minecraft/network/packet/c2s/login/LoginHelloC2SPacket;)V
      intermediary method_12641 Lnet/minecraft/class_2911;method_12641(Lnet/minecraft/class_2915;)V
      official a Lajk;a(Lajm;)V
    • startVerify

      void startVerify(com.mojang.authlib.GameProfile profile)
      Mappings:
      Namespace Name Mixin selector
      named startVerify Lnet/minecraft/server/network/ServerLoginNetworkHandler;startVerify(Lcom/mojang/authlib/GameProfile;)V
      intermediary method_52417 Lnet/minecraft/class_3248;method_52417(Lcom/mojang/authlib/GameProfile;)V
      official b Lash;b(Lcom/mojang/authlib/GameProfile;)V
    • tickVerify

      private void tickVerify(com.mojang.authlib.GameProfile profile)
      Mappings:
      Namespace Name Mixin selector
      named tickVerify Lnet/minecraft/server/network/ServerLoginNetworkHandler;tickVerify(Lcom/mojang/authlib/GameProfile;)V
      intermediary method_52419 Lnet/minecraft/class_3248;method_52419(Lcom/mojang/authlib/GameProfile;)V
      official c Lash;c(Lcom/mojang/authlib/GameProfile;)V
    • sendSuccessPacket

      private void sendSuccessPacket(com.mojang.authlib.GameProfile profile)
      Mappings:
      Namespace Name Mixin selector
      named sendSuccessPacket Lnet/minecraft/server/network/ServerLoginNetworkHandler;sendSuccessPacket(Lcom/mojang/authlib/GameProfile;)V
      intermediary method_52420 Lnet/minecraft/class_3248;method_52420(Lcom/mojang/authlib/GameProfile;)V
      official d Lash;d(Lcom/mojang/authlib/GameProfile;)V
    • onKey

      public void onKey(LoginKeyC2SPacket packet)
      Specified by:
      onKey in interface ServerLoginPacketListener
      Mappings:
      Namespace Name Mixin selector
      named onKey Lnet/minecraft/network/listener/ServerLoginPacketListener;onKey(Lnet/minecraft/network/packet/c2s/login/LoginKeyC2SPacket;)V
      intermediary method_12642 Lnet/minecraft/class_2911;method_12642(Lnet/minecraft/class_2917;)V
      official a Lajk;a(Lajn;)V
    • onQueryResponse

      public void onQueryResponse(LoginQueryResponseC2SPacket packet)
      Specified by:
      onQueryResponse in interface ServerLoginPacketListener
      Mappings:
      Namespace Name Mixin selector
      named onQueryResponse Lnet/minecraft/network/listener/ServerLoginPacketListener;onQueryResponse(Lnet/minecraft/network/packet/c2s/login/LoginQueryResponseC2SPacket;)V
      intermediary method_12640 Lnet/minecraft/class_2911;method_12640(Lnet/minecraft/class_2913;)V
      official a Lajk;a(Lajl;)V
    • onEnterConfiguration

      public void onEnterConfiguration(EnterConfigurationC2SPacket packet)
      Specified by:
      onEnterConfiguration in interface ServerLoginPacketListener
      Mappings:
      Namespace Name Mixin selector
      named onEnterConfiguration Lnet/minecraft/network/listener/ServerLoginPacketListener;onEnterConfiguration(Lnet/minecraft/network/packet/c2s/login/EnterConfigurationC2SPacket;)V
      intermediary method_52289 Lnet/minecraft/class_2911;method_52289(Lnet/minecraft/class_8593;)V
      official a Lajk;a(Lajo;)V
    • addCustomCrashReportInfo

      public void addCustomCrashReportInfo(CrashReportSection section)
      Specified by:
      addCustomCrashReportInfo in interface PacketListener
      Mappings:
      Namespace Name Mixin selector
      named addCustomCrashReportInfo Lnet/minecraft/network/listener/PacketListener;addCustomCrashReportInfo(Lnet/minecraft/util/crash/CrashReportSection;)V
      intermediary method_55597 Lnet/minecraft/class_2547;method_55597(Lnet/minecraft/class_129;)V
      official a Lwv;a(Lp;)V
    • onCookieResponse

      public void onCookieResponse(CookieResponseC2SPacket packet)
      Specified by:
      onCookieResponse in interface ServerCookieResponsePacketListener
      Mappings:
      Namespace Name Mixin selector
      named onCookieResponse Lnet/minecraft/network/listener/ServerCookieResponsePacketListener;onCookieResponse(Lnet/minecraft/network/packet/c2s/common/CookieResponseC2SPacket;)V
      intermediary method_55851 Lnet/minecraft/class_9090;method_55851(Lnet/minecraft/class_9091;)V
      official a Lacf;a(Lacg;)V