@@ -49,8 +49,6 @@ function initializeCoreMod() {
4949 if ( node . getOpcode ( ) === Opcodes . RETURN ) {
5050 mn . instructions . insertBefore ( node , new VarInsnNode ( Opcodes . ALOAD , 2 ) ) ;
5151 mn . instructions . insertBefore ( node , new MethodInsnNode ( Opcodes . INVOKESTATIC , "customskinloader/fake/FakeSkinManager" , "setSkinCacheDir" , "(Ljava/nio/file/Path;)V" , false ) ) ;
52- } else if ( node . getOpcode ( ) === Opcodes . INVOKEVIRTUAL && node . owner . equals ( "com/google/common/cache/CacheBuilder" ) && checkName ( node . name , "build" ) && node . desc . equals ( "(Lcom/google/common/cache/CacheLoader;)Lcom/google/common/cache/LoadingCache;" ) ) {
53- mn . instructions . insertBefore ( node , new MethodInsnNode ( Opcodes . INVOKESTATIC , "customskinloader/fake/FakeSkinManager" , "setCacheLoader" , "(Lcom/google/common/cache/CacheLoader;)Lcom/google/common/cache/CacheLoader;" , false ) ) ;
5452 }
5553 }
5654 } else if ( checkName ( mn . name , "m_118828_" ) && mn . desc . equals ( "(Lcom/mojang/authlib/minecraft/MinecraftProfileTexture;Lcom/mojang/authlib/minecraft/MinecraftProfileTexture$Type;Lnet/minecraft/client/resources/SkinManager$SkinTextureCallback;)Lnet/minecraft/resources/ResourceLocation;" ) ) { // 1.20.1-
@@ -120,11 +118,13 @@ function initializeCoreMod() {
120118 } else if ( checkName ( mn . name , "m_293351_" ) && mn . desc . equals ( "(Lcom/mojang/authlib/GameProfile;)Ljava/util/concurrent/CompletableFuture;" ) ) { // 1.20.2+
121119 for ( var iterator = mn . instructions . iterator ( ) ; iterator . hasNext ( ) ; ) {
122120 var node = iterator . next ( ) ;
123- if ( node . getOpcode ( ) === Opcodes . INVOKESPECIAL && node . owner . equals ( "net/minecraft/client/resources/SkinManager$CacheKey" ) && checkName ( node . name , "<init>" ) && node . desc . equals ( "(Ljava/util/UUID;Lcom/mojang/authlib/properties/Property;)V" ) ) {
124- mn . instructions . insertBefore ( node , new MethodInsnNode ( Opcodes . INVOKESTATIC , "customskinloader/fake/FakeSkinManager" , "createProperty" , "(Lcom/mojang/authlib/properties/Property;)Lcom/mojang/authlib/properties/Property;" , false ) ) ;
125- } else if ( node . getOpcode ( ) === Opcodes . INVOKEINTERFACE && node . owner . equals ( "com/google/common/cache/LoadingCache" ) && checkName ( node . name , "getUnchecked" ) && node . desc . equals ( "(Ljava/lang/Object;)Ljava/lang/Object;" ) ) {
121+ if ( node . getOpcode ( ) === Opcodes . NEW && node . desc . equals ( "net/minecraft/client/resources/SkinManager$CacheKey" ) ) {
122+ iterator . remove ( ) ;
123+ iterator . next ( ) ; // DUP
124+ iterator . remove ( ) ;
125+ } else if ( node . getOpcode ( ) === Opcodes . INVOKESPECIAL && node . owner . equals ( "net/minecraft/client/resources/SkinManager$CacheKey" ) && checkName ( node . name , "<init>" ) && node . desc . equals ( "(Ljava/util/UUID;Lcom/mojang/authlib/properties/Property;)V" ) ) {
126126 mn . instructions . insertBefore ( node , new VarInsnNode ( Opcodes . ALOAD , 1 ) ) ;
127- mn . instructions . insertBefore ( node , new MethodInsnNode ( Opcodes . INVOKESTATIC , "customskinloader/fake/FakeSkinManager" , "loadCache " , "(Ljava/lang/Object ;Lcom/mojang/authlib/GameProfile;)Ljava/lang/Object ;" , false ) ) ;
127+ mn . instructions . set ( node , new MethodInsnNode ( Opcodes . INVOKESTATIC , "customskinloader/fake/FakeSkinManager$FakeCacheKey " , "createFakeCacheKey " , "(Ljava/util/UUID ;Lcom/mojang/authlib/properties/Property;Lcom/mojang/authlib/ GameProfile;)Lnet/minecraft/client/resources/SkinManager$CacheKey ;" , false ) ) ;
128128 }
129129 }
130130 }
@@ -163,7 +163,7 @@ function initializeCoreMod() {
163163 for ( var iterator = mn . instructions . iterator ( ) ; iterator . hasNext ( ) ; ) {
164164 var node = iterator . next ( ) ;
165165 if ( node . getOpcode ( ) === Opcodes . INVOKEINTERFACE && node . owner . equals ( "com/mojang/authlib/minecraft/MinecraftSessionService" ) && checkName ( node . name , "unpackTextures" ) && node . desc . equals ( "(Lcom/mojang/authlib/properties/Property;)Lcom/mojang/authlib/minecraft/MinecraftProfileTextures;" ) ) {
166- mn . instructions . insertBefore ( node , new VarInsnNode ( Opcodes . ALOAD , 1 ) ) ;
166+ mn . instructions . insertBefore ( node , new VarInsnNode ( Opcodes . ALOAD , 0 ) ) ;
167167 mn . instructions . insert ( node , new TypeInsnNode ( Opcodes . CHECKCAST , "com/mojang/authlib/minecraft/MinecraftProfileTextures" ) ) ;
168168 mn . instructions . set ( node , new MethodInsnNode ( Opcodes . INVOKESTATIC , "customskinloader/fake/FakeSkinManager" , "loadSkinFromCache" , "(Lcom/mojang/authlib/minecraft/MinecraftSessionService;Lcom/mojang/authlib/properties/Property;Lnet/minecraft/client/resources/SkinManager$CacheKey;)Ljava/lang/Object;" , false ) ) ;
169169 }
0 commit comments