@@ -114,8 +114,10 @@ public class ClassNames {
114114
115115
116116        // SpigotSkinApplier 
117-         Class <?> craftPlayerClass  = ReflectionUtils .getClass (
118-                 "org.bukkit.craftbukkit."  + version  + "entity.CraftPlayer" );
117+         Class <?> craftPlayerClass  = getClassOrFallback (
118+                 "org.bukkit.craftbukkit.entity.CraftPlayer" ,
119+                 "org.bukkit.craftbukkit."  + version  + "entity.CraftPlayer" 
120+         );
119121        GET_PROFILE_METHOD  = getMethod (craftPlayerClass , "getProfile" );
120122        checkNotNull (GET_PROFILE_METHOD , "Get profile method" );
121123
@@ -135,28 +137,35 @@ public class ClassNames {
135137        );
136138
137139        SERVER_CONNECTION  = getClassOrFallback (
140+                 "net.minecraft.server.network.ServerConnectionListener" ,
138141                "net.minecraft.server.network.ServerConnection" ,
139142                nmsPackage  + "ServerConnection" 
140143        );
141144
142145        // WhitelistUtils 
143-         Class <?> craftServerClass  = ReflectionUtils .getClass (
144-                 "org.bukkit.craftbukkit."  + version  + "CraftServer" );
145-         Class <OfflinePlayer > craftOfflinePlayerClass  = ReflectionUtils .getCastedClass (
146-                 "org.bukkit.craftbukkit."  + version  + "CraftOfflinePlayer" );
146+         Class <?> craftServerClass  = getClassOrFallback (
147+                 "org.bukkit.craftbukkit.CraftServer" ,
148+                 "org.bukkit.craftbukkit."  + version  + "CraftServer" 
149+         );
150+         Class <OfflinePlayer > craftOfflinePlayerClass  = ReflectionUtils .getCastedClassOrFallback (
151+                 "org.bukkit.craftbukkit.CraftOfflinePlayer" ,
152+                 "org.bukkit.craftbukkit."  + version  + "CraftOfflinePlayer" 
153+         );
147154
148155        CRAFT_OFFLINE_PLAYER_CONSTRUCTOR  = ReflectionUtils .getConstructor (
149156                craftOfflinePlayerClass , true , craftServerClass , GameProfile .class );
150157
151158        // SpigotDataHandler 
152159        Class <?> networkManager  = getClassOrFallback (
160+                 "net.minecraft.network.Connection" ,
153161                "net.minecraft.network.NetworkManager" ,
154162                nmsPackage  + "NetworkManager" 
155163        );
156164
157165        SOCKET_ADDRESS  = getFieldOfType (networkManager , SocketAddress .class , false );
158166
159167        HANDSHAKE_PACKET  = getClassOrFallback (
168+                 "net.minecraft.network.protocol.handshake.ClientIntentionPacket" ,
160169                "net.minecraft.network.protocol.handshake.PacketHandshakingInSetProtocol" ,
161170                nmsPackage  + "PacketHandshakingInSetProtocol" 
162171        );
@@ -165,11 +174,13 @@ public class ClassNames {
165174        checkNotNull (HANDSHAKE_HOST , "Handshake host" );
166175
167176        LOGIN_START_PACKET  = getClassOrFallback (
177+                 "net.minecraft.network.protocol.login.ServerboundHelloPacket" ,
168178                "net.minecraft.network.protocol.login.PacketLoginInStart" ,
169179                nmsPackage  + "PacketLoginInStart" 
170180        );
171181
172182        LOGIN_LISTENER  = getClassOrFallback (
183+                 "net.minecraft.server.network.ServerLoginPacketListenerImpl" ,
173184                "net.minecraft.server.network.LoginListener" ,
174185                nmsPackage  + "LoginListener" 
175186        );
@@ -210,15 +221,15 @@ public class ClassNames {
210221            // We get the field by name on 1.20.2+ as there are now multiple fields of this type in network manager 
211222
212223            // PacketListener packetListener of NetworkManager 
213-             PACKET_LISTENER  = getField (networkManager , "q" );
224+             PACKET_LISTENER  = getField (networkManager , "packetListener"  ,  " q"
214225            makeAccessible (PACKET_LISTENER );
215226        }
216227        checkNotNull (PACKET_LISTENER , "Packet listener" );
217228
218229        if  (IS_POST_LOGIN_HANDLER ) {
219230            makeAccessible (CALL_PLAYER_PRE_LOGIN_EVENTS );
220231
221-             START_CLIENT_VERIFICATION  = getMethod (LOGIN_LISTENER , "b" , GameProfile .class );
232+             START_CLIENT_VERIFICATION  = getMethod (LOGIN_LISTENER , "startClientVerification"  ,  " b"GameProfile .class );
222233            checkNotNull (START_CLIENT_VERIFICATION , "startClientVerification" );
223234            makeAccessible (START_CLIENT_VERIFICATION );
224235
@@ -314,15 +325,15 @@ public class ClassNames {
314325                    String .class , int .class , CLIENT_INTENT );
315326            checkNotNull (HANDSHAKE_PACKET_CONSTRUCTOR , "Handshake packet constructor" );
316327
317-             Field  a  = getField (HANDSHAKE_PACKET , "a" );
328+             Field  a  = getField (HANDSHAKE_PACKET , "STREAM_CODEC"  ,  " a"
318329            checkNotNull (a , "Handshake \" a\"  field (protocol version, or stream codec)" );
319330
320331            if  (a .getType ().isPrimitive ()) { // 1.20.2 - 1.20.4: a is the protocol version (int) 
321332                HANDSHAKE_PROTOCOL  = a ;
322333                HANDSHAKE_PORT  = getField (HANDSHAKE_PACKET , "c" );
323334            } else  { // 1.20.5: a is the stream_codec thing, so everything is shifted 
324-                 HANDSHAKE_PROTOCOL  = getField (HANDSHAKE_PACKET , "b" );
325-                 HANDSHAKE_PORT  = getField (HANDSHAKE_PACKET , "d" );
335+                 HANDSHAKE_PROTOCOL  = getField (HANDSHAKE_PACKET , "protocolVersion"  ,  " b"
336+                 HANDSHAKE_PORT  = getField (HANDSHAKE_PACKET , "port"  ,  " d"
326337            }
327338
328339            checkNotNull (HANDSHAKE_PROTOCOL , "Handshake protocol" );
0 commit comments