![Puzzles Lib [Forge & Fabric]](https://media.forgecdn.net/avatars/thumbnails/776/232/256/256/638118144989284933.png)
[Bug]: Modrinth version for 1.21.5 compatibility does not work
Kalanyr opened this issue ยท 3 comments
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
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!
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.