samolego / FabricTailor

A server-side or singleplayer skin changing mod for fabric.
https://modrinth.com/mod/FabricTailor
GNU Lesser General Public License v3.0
109 stars 17 forks source link

[BUG] Incompatibility with fancymenu #100

Closed YkVox closed 6 months ago

YkVox commented 6 months ago

- [✓] I'm not using TLauncher (it messes up the skins, also, piracy is not supported)

https://mclo.gs/Zrew9qS

here may be some useful lines [Render thread/ERROR]: Critical injection failure: LVT in net/minecraft/class_440::method_25426()V has incompatible changes at opcode 90 in callback fabrictailor.mixins.json:client.MSkinCustomizationScreen_SkinButton from mod fabrictailor->@Inject::onInit(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;I)V. Expected: [I] Found: [Ljava/util/List;] Available: [Ljava/util/List;, [Lnet/minecraft/class_1664;, I, I, Lnet/minecraft/class_1664;]

and java.lang.ExceptionInInitializerError at de.keksuccino.fancymenu.customization.screen.identifier.ScreenIdentifierHandler.isValidIdentifier(ScreenIdentifierHandler.java:44) at de.keksuccino.fancymenu.customization.screen.identifier.ScreenIdentifierHandler.tryFixInvalidIdentifierWithNonUniversal(ScreenIdentifierHandler.java:79) at de.keksuccino.fancymenu.customization.ScreenCustomization.readCustomizableScreensFromFile(ScreenCustomization.java:228) at de.keksuccino.fancymenu.customization.layout.LayoutHandler.reloadLayouts(LayoutHandler.java:58) at de.keksuccino.fancymenu.customization.layout.LayoutHandler.init(LayoutHandler.java:42) at de.keksuccino.fancymenu.customization.ScreenCustomization.init(ScreenCustomization.java:112) at net.minecraft.class_310$class_8764.handler$cfo000$fancymenu$after_construct_FancyMenu(class_310.java:3230) at net.minecraft.class_310$class_8764.<init>(class_310.java:3154) at net.minecraft.class_310.<init>(class_310.java:700) at net.minecraft.client.main.Main.main(Main.java:223) at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:100) at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129) at org.prismlauncher.EntryPoint.main(EntryPoint.java:70) Caused by: java.lang.RuntimeException: Mixin transformation of net.minecraft.class_440 failed at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:427) at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323) at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218) at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) at de.keksuccino.fancymenu.customization.screen.identifier.UniversalScreenIdentifierRegistry.<clinit>(UniversalScreenIdentifierRegistry.java:102) ... 16 more Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ... 21 more Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: LVT in net/minecraft/class_440::method_25426()V has incompatible changes at opcode 90 in callback fabrictailor.mixins.json:client.MSkinCustomizationScreen_SkinButton from mod fabrictailor->@Inject::onInit(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;I)V.

have a good day !

Keksuccino commented 6 months ago

Hey, dev of FancyMenu here! :D

Wanted to copy-paste here what I wrote in https://github.com/Keksuccino/FancyMenu/issues/836 :

I'm pretty sure I can't fix that on my end. It's caused by FabricTailor's MSkinCustomizationScreen_SkinButton mixin class. Probably caused by the LocalCapture in the @Inject of that mixin class.

I am pretty sure there's a better way than capturing the locals with FAILHARD there. Best is to not capture locals at all probably.

samolego commented 6 months ago

I'll see what I can do, thanks for reporting!

YkVox commented 6 months ago

i'm glad you found the issue this quickly ! congrats :)