Lithium (Fabric)

Lithium (Fabric)

22M Downloads

Startup crash with campfires cook mobs

supersaiyansubtlety opened this issue ยท 4 comments

commented

I am the developer of Camp Fires Cook Mobs.

I went to the JellySquid Discord and some members tried to help me figure this issue out, but we couldn't find a solution. The conversation starts here and ends here, if you'd like to see what was suggested.

In short, we tried to get the custom key in fabric.mod.json that requests lithium disable certain modules to work. We also tried disabling the modules using lithium.properties, but for some reason this wasn't working either (or at least my log output didn't make it look like it was working).

Version 1.1.1 of camp fires cook mobs has lithium (and phosphor, which it also crashes with, but I've been unable to use curemaven to get it into a dev environment) declared as a breaking conflict, so if you're trying to run them together use 1.1.0.

Reproduction Steps

  1. Install lithium
  2. Install camp fires cook mobs
  3. Start the game
  4. Game crashes

Crash Report File

No crash report was generated.
Here is the latest.log from my non-dev environment.
Here is the latest.log from my dev environment.

Additional Information

Minecraft 1.16.1
camp-fires-cook-mobs-1.1.0+1.16.1.jar
lithium-fabric-mc1.16.1-0.5.1.jar
Fabric loader 0.9.0+build.204

commented

org.spongepowered.asm.mixin.transformer.throwables.MixinTargetAlreadyLoadedException: Critical problem: lithium.mixins.json:block.flatten_states.AbstractBlockStateMixin target net.minecraft.block.AbstractBlock$AbstractBlockState was loaded too early.

Something in your mod is loading classes before Mixins can get to them. This doesn't look like a fault of Lithium at all, and I can't help you any without seeing the source code to your mod.

commented

Right, the project is here.

commented

Your mod's IMixinConfigPlugin class is violating the class loading rules, by loading the class CampFireEntityFireChecks which contains references to BlockState. This leads to BlockState (and as a result, AbstractBlockState) being loaded before any mixins are initialized, since we are in the setup stage.

Lithium (and probably other mods which touch these classes) are promptly exploding as a result of this bug.

You need to move this initialization logic to some place that happens after Mixins are initialized, such as the main entrypoint. This shouldn't break anything of your mod.

commented

Ah, thanks! I'll make that change and keep that in mind in the future.