Incompatible with chiseled me
freopt opened this issue ยท 6 comments
Describe the bug
Game crashes on startup with both Fluidlogged API and chiseled me installed
Logs
https://gist.github.com/freopt/f6b4dcc8660642d197438a6d69a82f8d
The problem is Fluidlogging API overwriting World#rayTraceBlocks
when Chiseled me is just performing a @ModifyVariable
just learned that @Mixins
have a priority system, so now I'm pretty sure I can just embed its fix into mine & set mine to happen after chiseled me, which should fix the problem
I'm pretty sure I can just embed its fix into mine & set mine to happen after chiseled me, which should fix the problem
I encountered the same crash even when my mixin has a later priority, error in case anyone's curious:
[main/FATAL] [mixin]: Mixin apply failed chiseled-me.mixins.json:WorldMixin -> net.minecraft.world.World: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("STORE" ordinal=-1 index=-1) on net/minecraft/world/World::rayTraceBlocks with priority 1000 cannot inject into net/minecraft/world/World::func_147447_a(Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;ZZZ)Lnet/minecraft/util/math/RayTraceResult; merged by git.jbredwards.fluidlogged_api.mod.asm.mixins.vanilla.world.MixinWorld with priority 10000 [PREINJECT Applicator Phase -> chiseled-me.mixins.json:WorldMixin -> Prepare Injections -> -> localvar$zzg000$rayTraceBlocks(Lnet/minecraft/util/math/RayTraceResult;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;ZZZ)Lnet/minecraft/util/math/RayTraceResult; -> Prepare]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("STORE" ordinal=-1 index=-1) on net/minecraft/world/World::rayTraceBlocks with priority 1000 cannot inject into net/minecraft/world/World::func_147447_a(Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;ZZZ)Lnet/minecraft/util/math/RayTraceResult; merged by git.jbredwards.fluidlogged_api.mod.asm.mixins.vanilla.world.MixinWorld with priority 10000 [PREINJECT Applicator Phase -> chiseled-me.mixins.json:WorldMixin -> Prepare Injections -> -> localvar$zzg000$rayTraceBlocks(Lnet/minecraft/util/math/RayTraceResult;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;ZZZ)Lnet/minecraft/util/math/RayTraceResult; -> Prepare]
Closing this, as it seems that the fix does have to applied from chiseled me's side after all
It's just mixin straight up doesn't support several mixins for the same methods if someone with a higher/same priority does an @Overwrite
, @Redirect
or @ModifyConstant