TerraformersMC / Biolith

A biome placement mod focusing on configurability and consistent distribution of modded biomes
Other
9 stars 2 forks source link

Mixin apply error with C2ME #11

Closed bentterp closed 4 months ago

bentterp commented 7 months ago

[05:44:18] [main/ERROR]: Mixin apply for mod biolith failed biolith.mixins.json:MixinTheEndBiomeSource from mod biolith -> net.minecraft.class_2169: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("NEW") on net/minecraft/class_2169::biolith$smoothEndNoise with priority 1000 cannot inject into net/minecraft/class_2169::method_38109(IIILnet/minecraft/class_6544$class_6552;)Lnet/minecraft/class_6880; merged by com.ishland.c2me.opts.worldgen.vanilla.mixin.the_end_biome_cache.MixinTheEndBiomeSource with priority 1100 [PREINJECT Applicator Phase -> biolith.mixins.json:MixinTheEndBiomeSource from mod biolith -> Prepare Injections -> -> wrapOperation$zdo000$biolith$smoothEndNoise(IIILcom/llamalad7/mixinextras/injector/wrapoperation/Operation;III)Lnet/minecraft/class_6910$class_6914; -> Prepare] org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("NEW") on net/minecraft/class_2169::biolith$smoothEndNoise with priority 1000 cannot inject into net/minecraft/class_2169::method_38109(IIILnet/minecraft/class_6544$class_6552;)Lnet/minecraft/class_6880; merged by com.ishland.c2me.opts.worldgen.vanilla.mixin.the_end_biome_cache.MixinTheEndBiomeSource with priority 1100 [PREINJECT Applicator Phase -> biolith.mixins.json:MixinTheEndBiomeSource from mod biolith -> Prepare Injections -> -> wrapOperation$zdo000$biolith$smoothEndNoise(IIILcom/llamalad7/mixinextras/injector/wrapoperation/Operation;III)Lnet/minecraft/class_6910$class_6914; -> Prepare]

Full log here https://mclo.gs/zNrn4BW

gniftygnome commented 7 months ago

Yeah, C2ME completely overwrites the entire End dimension getBiome(). (An extremely impolite and incompatible thing to do!)

https://github.com/RelativityMC/C2ME-fabric/blob/ver/1.20.4/c2me-opts-worldgen-vanilla/src/main/java/com/ishland/c2me/opts/worldgen/vanilla/mixin/the_end_biome_cache/MixinTheEndBiomeSource.java#L60-L77

You'll need to turn that off if you want to use C2ME with Biolith. Previous versions of Biolith may not have thrown an error, but its End biome placement support will have been silently killed by C2ME.

Find a file named c2me.toml in your Minecraft config directory and change the setting useEndBiomeCache to false. I will see if I can persuade Ishland to default that optimization to false.

[vanillaWorldGenOptimizations]
        # (Default: true) Whether to enable aquifer optimizations to accelerate overworld worldgen
        # (may cause incompatibility with other mods)
        optimizeAquifer = "default"
        # (Default: true) Whether to enable End Biome Cache to accelerate The End worldgen
        # This is no longer included in lithium-fabric
        # (may cause incompatibility with other mods)
        #
        useEndBiomeCache = "false"
# LIKE THIS ^^^^^^^^^^^^^^^^^^^^
gniftygnome commented 5 months ago

It doesn't seem like C2ME is going to change any time soon, so I will pin this issue. See the first comment for a work-around.

gniftygnome commented 4 months ago

This issue is resolved in C2ME 0.2.0+alpha.11.95 for 1.20.6 and newer. Thanks, Ishland.