Compatibility issue with Croptopia
BrekiTomasson opened this issue ยท 7 comments
Mod Versions:
- Croptopia:
FABRIC-1.3.3
- FallingTree:
2.11.2
After updating FallingTree to the most recently released version, a compatibility issue between it and Croptopia appeared, causing the client to crash on load. Disabling either mod will make the client work again, but considering it worked in previous versions of FallingTree with the current version of Croptopia, I suspect the problem is related to something introduced between FallingTree v2.11.0
and FallingTree v2.11.2
.
The errors in the log include:
[19:32:15] [main/WARN]: Mixin apply failed Croptopia.mixins.json:VillagerMixin -> net.minecraft.class_1646: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @ModifyArg annotation on addSeedToPlant could not find any targets matching 'hasSeedToPlant' in net.minecraft.class_1646. Using refmap fabric-refmap.json [ -> modify$cjo000$addSeedToPlant(Ljava/util/Set;)Ljava/util/Set; -> Parse]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @ModifyArg annotation on addSeedToPlant could not find any targets matching 'hasSeedToPlant' in net.minecraft.class_1646. Using refmap fabric-refmap.json [ -> modify$cjo000$addSeedToPlant(Ljava/util/Set;)Ljava/util/Set; -> Parse]
[...]
[19:32:15] [main/WARN]: Mixin apply failed Croptopia.mixins.json:VillagerAccess -> net.minecraft.class_1646: org.spongepowered.asm.mixin.gen.throwables.InvalidAccessorException No candidates were found matching GATHERABLE_ITEMS:Ljava/util/Set; in net/minecraft/class_1646 for Croptopia.mixins.json:VillagerAccess->@Accessor[FIELD_GETTER]::getGatherableItems()Ljava/util/Set; [ -> Locate -> Croptopia.mixins.json:VillagerAccess->@Accessor[FIELD_GETTER]::getGatherableItems()Ljava/util/Set;]
org.spongepowered.asm.mixin.gen.throwables.InvalidAccessorException: No candidates were found matching GATHERABLE_ITEMS:Ljava/util/Set; in net/minecraft/class_1646 for Croptopia.mixins.json:VillagerAccess->@Accessor[FIELD_GETTER]::getGatherableItems()Ljava/util/Set; [ -> Locate -> Croptopia.mixins.json:VillagerAccess->@Accessor[FIELD_GETTER]::getGatherableItems()Ljava/util/Set;]
[...]
[19:32:18] [main/WARN]: Mixin apply failed Croptopia.mixins.json:AxeMixin -> net.minecraft.class_1743: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @Inject annotation on blockUse could not find any targets matching 'useOnBlock' in net.minecraft.class_1743. Using refmap fabric-refmap.json [ -> handler$cjm000$blockUse(Lnet/minecraft/class_1838;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> Parse]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on blockUse could not find any targets matching 'useOnBlock' in net.minecraft.class_1743. Using refmap fabric-refmap.json [ -> handler$cjm000$blockUse(Lnet/minecraft/class_1838;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> Parse]
[...]
[19:32:18] [main/WARN]: Mixin apply failed Croptopia.mixins.json:AxeAccess -> net.minecraft.class_1743: org.spongepowered.asm.mixin.gen.throwables.InvalidAccessorException No candidates were found matching STRIPPED_BLOCKS:Ljava/util/Map; in net/minecraft/class_1743 for Croptopia.mixins.json:AxeAccess->@Accessor[FIELD_GETTER]::getStrippedBlocks()Ljava/util/Map; [ -> Locate -> Croptopia.mixins.json:AxeAccess->@Accessor[FIELD_GETTER]::getStrippedBlocks()Ljava/util/Map;]
org.spongepowered.asm.mixin.gen.throwables.InvalidAccessorException: No candidates were found matching STRIPPED_BLOCKS:Ljava/util/Map; in net/minecraft/class_1743 for Croptopia.mixins.json:AxeAccess->@Accessor[FIELD_GETTER]::getStrippedBlocks()Ljava/util/Map; [ -> Locate -> Croptopia.mixins.json:AxeAccess->@Accessor[FIELD_GETTER]::getStrippedBlocks()Ljava/util/Map;]
The final error, which crashes the client on load is this:
java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'croptopia'!
at Not Enough Crashes deobfuscated stack trace.(1.16.5+build.6)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:53)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:36)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointClient.start(EntrypointClient.java:32)
at net.minecraft.client.MinecraftClient.redirect$zla000$catchFabricInit(MinecraftClient:6877)
at net.minecraft.client.MinecraftClient.<init>(MinecraftClient:437)
at net.minecraft.client.main.Main.main(Main:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:146)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)
Caused by: java.lang.NoSuchMethodError: net.minecraft.class_1646.getItemFoodValues_$md$ef02da$5()Ljava/util/Map;
at me.thonk.croptopia.mixin.VillagerAccess.getItemFoodValues(VillagerAccess.java)
at me.thonk.croptopia.Croptopia.modifyVillagerFoodItems(Croptopia.java:189)
at me.thonk.croptopia.Croptopia.onInitialize(Croptopia.java:91)
at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50)
... 20 more
All errors point towards Croptopia, but like I said, it worked fine with no changes to Croptopia with a previous version of Falling Tree, and disabling Falling Tree makes everything work again.
Opened ExcessiveAmountsOfZombies/Croptopia#108 as well to get Croptopia's perspective on things.
I'll take a better look a bit later but at first glance:
- For the mixins error the only ones that could interfere are the AxeAccess/AxeMixin. All others are from things totally unrelated.
- Regarding the update between FallingTree versions:
- 2.11.2 is mainly bug fixing regarding cloth-config related issues. Doesn't seem to be involved here.
- 2.11.1 could have break things. I moved a bit stuff around to make a single jar for both fabric & forge.
==> Just to confirm can you try with 2.11.1 (https://www.curseforge.com/minecraft/mc-mods/falling-tree/files/3275003). There hasn't been any real code change between 2.11.0 & 2.11.1 for fabric, so if this breaks it it is probably that the mixing of jar causes an issue.
Also just to make things clearer, when you say :
I suspect the problem is related to something introduced between FallingTree
v2.11.0
and FallingTreev2.11.2
does this mean that 2.11.0 works ok, or versions pior to it works ?
Running it with
- Croptopia-1.16.4-5-FABRIC-1.3.3
- fabric-api-0.33.0+1.16
- FallingTree-1.16.5-2.11.2
leads me to
[20:28:43] [main/FATAL]: Mixin apply failed fallingtree.mixins.json:AbstractBlockMixin -> net.minecraft.class_4970: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @Inject annotation on calcBlockBreakingDelta could not find any targets matching 'calcBlockBreakingDelta' in net.minecraft.class_4970. Using refmap fabric-refmap.json [PREINJECT Applicator Phase -> fallingtree.mixins.json:AbstractBlockMixin -> Prepare Injections -> -> handler$zdl000$calcBlockBreakingDelta(Lnet/minecraft/class_2680;Lnet/minecraft/class_1657;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> Parse]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on calcBlockBreakingDelta could not find any targets matching 'calcBlockBreakingDelta' in net.minecraft.class_4970. Using refmap fabric-refmap.json [PREINJECT Applicator Phase -> fallingtree.mixins.json:AbstractBlockMixin -> Prepare Injections -> -> handler$zdl000$calcBlockBreakingDelta(Lnet/minecraft/class_2680;Lnet/minecraft/class_1657;Lnet/minecraft/class_1922;Lnet/minecraft/class_2338;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> Parse]
even before the errors under the croptopia name.
Though without croptopia it does launch fine.
I think I managed to have something working. Seems like both our mods used a refmap for the mixins that have the same name fabric-refmap.json
.
Changing mine to something more specific to falling tree seems to fix the issue. Can you confirm it with that version please:
https://www.dropbox.com/t/izbp4dCuETyhq4Im
apparently that was it, I went ahead and changed mine as well but I won't be able to release any updates for a while. Interesting to know