Cuisine ๐Ÿณ

Cuisine ๐Ÿณ

576k Downloads

Incompatibility with AppleCore

Tokeli opened this issue ยท 6 comments

commented

AppleCore-mc1.12.2-3.1.4
Forge: 14.23.4.2760
Cuisine 0.2.2

Not sure if this is a bug or meant to be incompatible, but:

https://paste.dimdev.org/uvifihokax.mccrash

java.lang.RuntimeException: FoodStats has a null player field (this field is added by AppleCore at runtime) on player '<unknown>' (class = snownee.cuisine.library.CuisineFoodStats). This likely means that some mod has overloaded FoodStats, which is incompatible with AppleCore.
    at squeek.applecore.asm.Hooks.verifyFoodStats(Hooks.java:53)
    at squeek.applecore.asm.Hooks.needFood(Hooks.java:270)
    at net.minecraft.util.FoodStats.needFood(SourceFile)
    at com.buuz135.industrial.proxy.event.MeatFeederTickHandler.onTick(MeatFeederTickHandler.java:47)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1337_MeatFeederTickHandler_onTick_LivingUpdateEvent.invoke(.dynamic)
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
    at net.minecraftforge.common.ForgeHooks.onLivingUpdate(ForgeHooks.java:567)
    at net.minecraft.entity.EntityLivingBase.onUpdate(EntityLivingBase.java:2088)
    at net.minecraft.entity.player.EntityPlayer.onUpdate(EntityPlayer.java:234)
    at net.minecraft.entity.player.EntityPlayerMP.onUpdateEntity(EntityPlayerMP.java:382)
    at net.minecraft.network.NetHandlerPlayServer.update(NetHandlerPlayServer.java:173)
    at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher$1.update(NetworkDispatcher.java:209)
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:285)
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:180)
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:790)
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:668)
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:252)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
    at java.lang.Thread.run(Thread.java:745)
commented

Known issue, workaround is to disable B:HardcoreFoodLevel=true(set it to false)

commented

Actually, the changes I pushed this morning (954b9c7) addresses this issue. We just need to wait for next release...

Side notes: we have a hardcore mode (default on, configurable), where vanilla food restores less hunger value and saturations. AppleCore offers a similar API (thus why Hunger Overhaul & Spice of Life depends on that). The way we implement our feature clashes with AppleCore and it would be a bit tricky to let both co-exist. I personally suggests to just use Hunger Overhaul and disable our "vanilla food restore less hunger value" feature.

commented

implementing that applecore interface can fix the crash (with event handlers)

commented

I suggest including this class in an api source set and use it.

commented

@liach You understand that all of these are hacks right...? The real solution is in fact the FoodLevelEvent. Pam's HarvestCraft already has such need. Not to mention Hunger Overhaul and Spice of Life.

Also, you actually want to properly declare dependencies in build.gradle.

commented

Since Cuisine 0.3.0, Cuisine will not try swap the player's FoodStats if AppleCore is installed. If you do have AppleCore installed, consider using mods like Hunger Overhaul to adjust food values.