kikugie / elytra-trims

Lightweight and customizable support for trimmable elytras
https://modrinth.com/mod/elytra-trims
GNU Lesser General Public License v3.0
23 stars 8 forks source link

Allthetrims compatibility #22

Closed ethanhs closed 10 months ago

ethanhs commented 10 months ago

Motivation

It seems that this mod crashes/is incompatible with allthetrims (). They indicate that trims rendered with custom armor renderers or Fabric Armor renderers break that mod. I'd love to be able to have a lot of flexibility in the trims I add to my armor, as well as my elytra!

Description

They have a detailed wiki page on how to add compatibility: https://github.com/Benjamin-Norton/AllTheTrims/wiki/Dynamic-Trim-Rendering. I presume it could be added as an optional dependency to this mod so that when its installed the compatibility would be active?

The traceback I currently get is:

[18:26:41] [Render thread/ERROR]: Mixin apply for mod allthetrims failed allthetrims.mixins.json:client.elytratrims.ExtraElytraFeatureRendererMixin from mod allthetrims -> dev.kikugie.elytratrims.render.ExtraElytraFeatureRenderer: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Invalid descriptor on allthetrims.mixins.json:client.elytratrims.ExtraElytraFeatureRendererMixin from mod allthetrims->@Inject::renderElytraTrims(Lnet/minecraft/class_563;Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;IFLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V! Expected (Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;IFLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V but found (Lnet/minecraft/class_563;Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;IFLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V [INJECT Applicator Phase -> allthetrims.mixins.json:client.elytratrims.ExtraElytraFeatureRendererMixin from mod allthetrims -> Apply Injections ->  -> Inject -> allthetrims.mixins.json:client.elytratrims.ExtraElytraFeatureRendererMixin from mod allthetrims->@Inject::renderElytraTrims(Lnet/minecraft/class_563;Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;IFLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Invalid descriptor on allthetrims.mixins.json:client.elytratrims.ExtraElytraFeatureRendererMixin from mod allthetrims->@Inject::renderElytraTrims(Lnet/minecraft/class_563;Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;IFLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V! Expected (Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;IFLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V but found (Lnet/minecraft/class_563;Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;IFLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V [INJECT Applicator Phase -> allthetrims.mixins.json:client.elytratrims.ExtraElytraFeatureRendererMixin from mod allthetrims -> Apply Injections ->  -> Inject -> allthetrims.mixins.json:client.elytratrims.ExtraElytraFeatureRendererMixin from mod allthetrims->@Inject::renderElytraTrims(Lnet/minecraft/class_563;Lnet/minecraft/class_4587;Lnet/minecraft/class_4597;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;IFLorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V]
    at org.spongepowered.asm.mixin.injection.callback.CallbackInjector.inject(CallbackInjector.java:567) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.injection.callback.CallbackInjector.inject(CallbackInjector.java:497) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.injection.code.Injector.inject(Injector.java:276) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.inject(InjectionInfo.java:445) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1377) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1062) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:402) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:327) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:421) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.12.5+mixin.0.8.5.jar:0.12.5+mixin.0.8.5]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ~[fabric-loader-0.14.22.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323) ~[fabric-loader-0.14.22.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218) ~[fabric-loader-0.14.22.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:112) ~[fabric-loader-0.14.22.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at net.minecraft.class_979.handler$zej000$elytratrims$initExtraRenderer(class_979.java:543) ~[client-intermediary.jar:?]
    at net.minecraft.class_979.<init>(class_979.java:30) ~[client-intermediary.jar:?]
    at net.minecraft.class_909.<init>(class_909.java:18) ~[client-intermediary.jar:?]
    at net.minecraft.class_4842.<init>(class_4842.java:27) ~[client-intermediary.jar:?]
    at net.minecraft.class_5619.method_32178(class_5619.java:151) ~[client-intermediary.jar:?]
    at net.minecraft.class_5619.redirect$zml000$fabric-rendering-v1$createEntityRenderer(class_5619.java:559) ~[client-intermediary.jar:?]
    at net.minecraft.class_5619.method_32174(class_5619.java:162) ~[client-intermediary.jar:?]
    at java.util.HashMap.forEach(HashMap.java:1421) ~[?:?]
    at net.minecraft.class_5619.method_32176(class_5619.java:160) ~[client-intermediary.jar:?]
    at net.minecraft.class_898.method_14491(class_898.java:397) ~[client-intermediary.jar:?]
    at net.minecraft.class_4013.method_29490(class_4013.java:15) ~[client-intermediary.jar:?]
    at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787) ~[?:?]
    at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
    at net.minecraft.class_4014.method_18365(class_4014.java:69) ~[client-intermediary.jar:?]
    at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[client-intermediary.jar:?]
    at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[client-intermediary.jar:?]
    at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[client-intermediary.jar:?]
    at net.minecraft.class_1255.method_5383(class_1255.java:115) ~[client-intermediary.jar:?]
    at net.minecraft.class_310.method_1523(class_310.java:1175) ~[client-intermediary.jar:?]
    at net.minecraft.class_310.method_1514(class_310.java:802) ~[client-intermediary.jar:?]
    at net.minecraft.client.main.Main.main(Main.java:250) ~[minecraft-1.20.1-client.jar:?]
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:468) ~[fabric-loader-0.14.22.jar:?]
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.22.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.22.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:243) ~[NewLaunch.jar:?]
    at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:278) ~[NewLaunch.jar:?]
    at org.multimc.EntryPoint.listen(EntryPoint.java:143) ~[NewLaunch.jar:?]
    at org.multimc.EntryPoint.main(EntryPoint.java:34) ~[NewLaunch.jar:?]

Tested with the following mod list:

elytratrims-1.1.10-beta.4+1.20
allthetrims-3.1.4-fabric+1.20.1
architectury-9.1.12-fabric
fabric-api-0.86.1+1.20.1

Other information

Thanks for an awesome mod :)

kikugie commented 10 months ago

This is managed on AllTheTrims' side, and has already been fixed. Just awaiting release

ethanhs commented 10 months ago

Oh excellent! Thanks!