Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

strange config-related incompatibility with cit resewn #356

Open
wouu opened this issue Dec 24, 2021 · 2 comments
Open

strange config-related incompatibility with cit resewn #356

wouu opened this issue Dec 24, 2021 · 2 comments
Assignees
Labels
compatibility triggered by or conflicts with other mods enhancement Sure, why not, maybe, if I get to it...

Comments

@wouu
Copy link

wouu commented Dec 24, 2021

System Informatinon

  • Minecraft Version: 1.18.1
  • Canvas Version: 88bdbc6
  • Operating System: windows 11
  • Graphics Card: geforce rtx 2080s

Other mods and versions installed

  • cit resewn 0.8.1

How you triggered the behavior

356

What you expected would happen

  • both mods would work correctly, allowing me to assert my dominance over cringe and unbased forge and optifine users

What actually happened

  • the game crashed, and i was ridiculed by the cringe and unbased forge and optifine users
  • however upon deleting the config folder, the game started as normal, and i was able to temporarily assert my dominance over the cringe and unbased forge and optifine users, until i started the game again, which is when it started crashing again

Logs and screenshots

[08:06:57] [Render thread/ERROR]: Mixin apply for mod citresewn failed citresewn.mixins.json:cititem.ItemRendererMixin -> net.minecraft.class_918: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("LOAD" ordinal=-1 index=-1) on net/minecraft/class_918::fixMojankCITs with priority 1000 cannot inject into net/minecraft/class_918::method_23179(Lnet/minecraft/class_1799;Lnet/minecraft/class_809$class_811;ZLnet/minecraft/class_4587;Lnet/minecraft/class_4597;IILnet/minecraft/class_1087;)V merged by grondag.canvas.mixin.MixinItemRenderer with priority 1000 [PREINJECT Applicator Phase -> citresewn.mixins.json:cititem.ItemRendererMixin -> Prepare Injections ->  -> localvar$zcc000$fixMojankCITs(Lnet/minecraft/class_1087;)Lnet/minecraft/class_1087; -> Prepare]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("LOAD" ordinal=-1 index=-1) on net/minecraft/class_918::fixMojankCITs with priority 1000 cannot inject into net/minecraft/class_918::method_23179(Lnet/minecraft/class_1799;Lnet/minecraft/class_809$class_811;ZLnet/minecraft/class_4587;Lnet/minecraft/class_4597;IILnet/minecraft/class_1087;)V merged by grondag.canvas.mixin.MixinItemRenderer with priority 1000 [PREINJECT Applicator Phase -> citresewn.mixins.json:cititem.ItemRendererMixin -> Prepare Injections ->  -> localvar$zcc000$fixMojankCITs(Lnet/minecraft/class_1087;)Lnet/minecraft/class_1087; -> Prepare]
	at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:305) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:240) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:421) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1338) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1043) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:393) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:421) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.10.7+mixin.0.8.4.jar:0.10.7+mixin.0.8.4]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:247) ~[fabric-loader-0.12.12.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150) ~[fabric-loader-0.12.12.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155) ~[fabric-loader-0.12.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at net.minecraft.class_1921.<clinit>(class_1921.java:415) ~[client-intermediary.jar:?]
	at net.minecraft.class_898.<clinit>(class_898.java:53) ~[client-intermediary.jar:?]
	at grondag.canvas.CanvasMod.init(CanvasMod.java:88) ~[canvas-fabric-mc118-99.0.0-LOCAL.jar:?]
	at io.vram.canvas.CanvasFabricMod.onInitializeClient(CanvasFabricMod.java:45) ~[canvas-fabric-mc118-99.0.0-LOCAL.jar:?]
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47) [fabric-loader-0.12.12.jar:?]
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35) [fabric-loader-0.12.12.jar:?]
	at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:53) [fabric-loader-0.12.12.jar:?]
	at net.minecraft.class_310.<init>(class_310.java:452) [client-intermediary.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:199) [client-intermediary.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:608) [fabric-loader-0.12.12.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77) [fabric-loader-0.12.12.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.12.12.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
[08:06:57] [Render thread/INFO]: [Indigo] Different rendering plugin detected; not applying Indigo.
[08:06:58] [Render thread/INFO]: Failed to find module info for %localappdata%\Programs\MultiMC\instances\1.18.1\natives\lwjgl.dll
com.sun.jna.platform.win32.Win32Exception: The specified resource type cannot be found in the image file.
	at net.minecraft.class_6498.method_37964(class_6498.java:62) ~[client-intermediary.jar:?]
	at net.minecraft.class_6498.method_37961(class_6498.java:48) ~[client-intermediary.jar:?]
	at net.minecraft.class_6498.method_37968(class_6498.java:132) ~[client-intermediary.jar:?]
	at net.minecraft.class_129.method_577(class_129.java:84) [client-intermediary.jar:?]
	at net.minecraft.class_6498.method_37966(class_6498.java:131) [client-intermediary.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:207) [client-intermediary.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:608) [fabric-loader-0.12.12.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77) [fabric-loader-0.12.12.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.12.12.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
---- Minecraft Crash Report ----
// dababy real??? less goo, yeah yeah

Time: 24/12/2021, 8:06 am
Description: Initializing game

java.lang.RuntimeException: Could not execute entrypoint stage 'client' due to errors, provided by 'canvas'!
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke0$0(EntrypointUtils.java:51)
	at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:49)
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35)
	at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:53)
	at net.minecraft.class_310.<init>(class_310.java:452)
	at net.minecraft.client.main.Main.main(Main.java:199)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:608)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210)
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245)
	at org.multimc.EntryPoint.listen(EntryPoint.java:143)
	at org.multimc.EntryPoint.main(EntryPoint.java:34)
Caused by: java.lang.ExceptionInInitializerError
	at net.minecraft.class_898.<clinit>(class_898.java:53)
	at grondag.canvas.CanvasMod.init(CanvasMod.java:88)
	at io.vram.canvas.CanvasFabricMod.onInitializeClient(CanvasFabricMod.java:45)
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47)
	... 19 more
Caused by: java.lang.RuntimeException: Mixin transformation of net.minecraft.class_918 failed
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:252)
	at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:150)
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at net.minecraft.class_1921.<clinit>(class_1921.java:415)
	... 23 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:247)
	... 27 more
Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [citresewn.mixins.json:cititem.ItemRendererMixin] from phase [DEFAULT] in config [citresewn.mixins.json] from mod [citresewn] FAILED during APPLY
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinError(MixinProcessor.java:638)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinApplyError(MixinProcessor.java:589)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:379)
	... 30 more
Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("LOAD" ordinal=-1 index=-1) on net/minecraft/class_918::fixMojankCITs with priority 1000 cannot inject into net/minecraft/class_918::method_23179(Lnet/minecraft/class_1799;Lnet/minecraft/class_809$class_811;ZLnet/minecraft/class_4587;Lnet/minecraft/class_4597;IILnet/minecraft/class_1087;)V merged by grondag.canvas.mixin.MixinItemRenderer with priority 1000 [PREINJECT Applicator Phase -> citresewn.mixins.json:cititem.ItemRendererMixin -> Prepare Injections ->  -> localvar$zcc000$fixMojankCITs(Lnet/minecraft/class_1087;)Lnet/minecraft/class_1087; -> Prepare]
	at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:305)
	at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:240)
	at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:421)
	at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1338)
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1043)
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:393)
	at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325)
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:421)
	at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363)
	... 30 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke0$0(EntrypointUtils.java:51)
	at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:49)
	at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35)
	at net.fabricmc.loader.impl.game.minecraft.Hooks.startClient(Hooks.java:53)
	at net.minecraft.class_310.<init>(class_310.java:452)

see also: shsupercm/citresewn #83

@wouu
Copy link
Author

wouu commented Dec 28, 2021

canvas is using Overwrite in MixinItemRenderer#L54 which is usually frowned upon in the fabric community as it causes incompatibility with any mod trying to inject into the method

SHsuperCM/CITResewn#83 (comment)

@grondag
Copy link
Collaborator

grondag commented Dec 30, 2021

Thank you for the report. Cross-posting my response from the CIT issue:

Canvas does use @overwrite in a handful of places. It may be possible to relax this at the cost of some performance and additional complexity but the way CIT is working here isn't consistent with how the Fabric rendering API was designed. FRAPI intended that mods would alter models instead of trying to hack into rendering code directly which is prone to conflicts. (Canvas is an implementation of the API, so it's expected to make invasive changes.)

Item model output with FRAPI can be fully dynamic and with the FREX rendering API the options are even more powerful. If I'm not able to make CIT compatible then I may consider producing a CIT implementation that uses supported APIs.

@grondag grondag self-assigned this Dec 30, 2021
@grondag grondag added compatibility triggered by or conflicts with other mods enhancement Sure, why not, maybe, if I get to it... labels Dec 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compatibility triggered by or conflicts with other mods enhancement Sure, why not, maybe, if I get to it...
Projects
None yet
Development

No branches or pull requests

2 participants