Puzzles Lib [Forge & Fabric]

Puzzles Lib [Forge & Fabric]

99M Downloads

[Bug]: Modrinth version for 1.21.5 compatibility does not work

Kalanyr opened this issue ยท 3 comments

commented

Mod Loader (Required)

Fabric

Minecraft Version(s) (Required)

1.21.5

Mod Version(s) (Required)

v21.5.1

Other Mods Involved (Required)

Yes

Notes (Required)

This should be a crash report but I can't submit it there, as it does not generate a crash report ( think it crashes at the wrong time for that handler )

The version of this mod uploaded on Modrinth as 1.21.5 compatible is not actually compatible with 1.21.5 eg it attempts to mixin method_7329 in class_1657 but method_7329 was removed from that class in 1.21.5. Perhaps you've uploaded the wrong file ?

latest.log (Required)

https://gist.github.com/Kalanyr/7a974d7445d02f9a510d18fbf20f05ce

commented

This is the error line I received:

[12:50:51] [main/ERROR]: Mixin apply for mod puzzleslib failed puzzleslib.fabric.mixins.json:PlayerFabricMixin from mod puzzleslib -> net.minecraft.class_1657: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @ModifyReturnValue annotation on drop could not find any targets matching 'Lnet/minecraft/class_1657;method_7329(Lnet/minecraft/class_1799;ZZ)Lnet/minecraft/class_1542;' in net/minecraft/class_1657. Using refmap puzzleslib.fabric.refmap.json [INJECT_PREPARE Applicator Phase -> puzzleslib.fabric.mixins.json:PlayerFabricMixin from mod puzzleslib -> Prepare Injections -> modifyReturnValue$dep000$puzzleslib$drop(Lnet/minecraft/class_1542;)Lnet/minecraft/class_1542; -> Parse -> -> Validate Targets]

And here is the log file:
https://mclo.gs/cOA4B2L

I hope this helps!

commented

Thanks for that! The issue is simply that Mixin in-dev did not report the invalid descriptor, and simply defaulted to another method with the same name during testing, even though that method has a completely different descriptor. I could even verify that no matter the descriptor, as long as any method with the same name exists in that class the Mixin will simply apply to that.

And of course in production all the methods are renamed to unique identifiers, so Mixin will no longer find something else to use instead, therefore it now fails to apply.

Really not sure why this can even happen, it's really unfortunate since I won't be able to catch that on my own. Also did some tests, and this does not appear to be a new issue, could track it as far back as 1.20.1.

Will push an update later fixing the Mixin.

commented

Fixed in v21.5.2.