Faboslav / friends-and-foes

Minecraft mod that adds outvoted and forgotten mobs from the mob votes in a believable vanilla plus style.
https://www.curseforge.com/minecraft/mc-mods/friends-and-foes
Other
95 stars 28 forks source link

[1.19.2-2.0.9] Crash : AbstractMethodError when Lightning Rod changes weathering state - Possible conflict with Caverns & Chasms #202

Closed TigerWalts closed 2 weeks ago

TigerWalts commented 4 months ago

Minecraft version information

1.19.2

Mod loader information

Forge

Mod loader version information

43.3.8

Mod version information

2.0.9

Reproduction Steps

  1. Install both Friends & Foes 2.0.9 and Caverns & Chasms 1.0.0
  2. Find a Copper Golem workshop
    • Just placing a Lightning Rod may be enough
  3. Wait
  4. ...
  5. Crash

Crash Report and latest.log

Crash Report: https://mclo.gs/1QQjmd5

java.lang.AbstractMethodError: Receiver class net.minecraft.world.level.block.LightningRodBlock does not define or inherit an implementation of the resolved method 'abstract java.util.Optional m_142123_(net.minecraft.world.level.block.state.BlockState)' of interface net.minecraft.world.level.block.ChangeOverTimeBlock.
    at net.minecraft.world.level.block.ChangeOverTimeBlock.m_220952_(ChangeOverTimeBlock.java:70) ~[server-1.19.2-20220805.130853-srg.jar%23543!/:?] {re:classloading,re:mixin}
    at net.minecraft.world.level.block.ChangeOverTimeBlock.m_220947_(ChangeOverTimeBlock.java:24) ~[server-1.19.2-20220805.130853-srg.jar%23543!/:?] {re:classloading,re:mixin}
    at net.minecraft.world.level.block.LightningRodBlock.m_213898_(LightningRodBlock.java:548) ~[server-1.19.2-20220805.130853-srg.jar%23543!/:?] {re:mixin,re:classloading,pl:mixin:APP:caverns_and_chasms.mixins.json:LightningRodBlockMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:LightningRodBlockDegradableMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:LightningRodBlockMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:LightningRodBlockOxidizableMixin,pl:mixin:A}
    at net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.m_222972_(BlockBehaviour.java:698) ~[server-1.19.2-20220805.130853-srg.jar%23543!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:forgeendertech:coremod,re:classloading,pl:accesstransformer:B,xf:fml:forgeendertech:coremod,pl:mixin:APP:modernfix-common.mixins.json:bugfix.chunk_deadlock.BlockStateBaseMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.reduce_blockstate_cache_rebuilds.BlockStateBaseMixin,pl:mixin:APP:arc-common.mixins.json:MixinBlockStateBase,pl:mixin:APP:byg.mixins.json:common.block.MixinBlockBehaviourBlockStateBase,pl:mixin:APP:fruitsdelight.mixins.json:BlockStateBaseMixin,pl:mixin:APP:twigs.mixins.json:BlockStateBaseMixin,pl:mixin:APP:ferritecore.blockstatecache.mixin.json:BlockStateBaseMixin,pl:mixin:APP:valhelsia_core.mixins.json:BlockStateBaseMixin,pl:mixin:A}
    at net.minecraft.server.level.ServerLevel.m_8714_(ServerLevel.java:446) ~[server-1.19.2-20220805.130853-srg.jar%23543!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:forgeendertech:coremod,xf:fml:sereneseasons:temperature_transformer,re:classloading,pl:accesstransformer:B,xf:fml:forgeendertech:coremod,xf:fml:sereneseasons:temperature_transformer,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin,pl:mixin:APP:betterendisland.mixins.json:ServerLevelMixin,pl:mixin:APP:modernfix-common.mixins.json:perf.cache_strongholds.ServerLevelMixin,pl:mixin:APP:modernfix-common.mixins.json:bugfix.chunk_deadlock.ServerLevelMixin,pl:mixin:APP:leavesbegone.common.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:endergetic.mixins.json:ServerLevelMixin,pl:mixin:APP:corgilib.mixins.json:MixinServerLevel,pl:mixin:APP:byg.mixins.json:common.world.MixinServerLevel,pl:mixin:APP:aether.mixins.json:common.accessor.ServerLevelAccessor,pl:mixin:APP:forge-mca.mixin.json:MixinServerWorld,pl:mixin:APP:betterdeserttemples.mixins.json:ServerLevelMixin,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldAccessor,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldMixin,pl:mixin:APP:atmospheric.mixins.json:ServerLevelMixin,pl:mixin:APP:ars_elemental.mixins.json:ServerLevelMixin,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:APP:betterendisland.mixins.json:EndergeticExpansionMixins,pl:mixin:A}

Additional information

Crash was observed when a structure added by Friends and Foes intended to demonstrate the Copper Golem was placed in the world. When the rod's weathering state changes, the server crashes.

Waxing or scraping the rod does not trigger a crash.

Lightning resetting the weathered state has not been checked.

Both mods add mixins that allow the lighting rod to weather/oxidize. There may be a conflict

Faboslav commented 4 months ago

I checked their mixins, and they @Override everything, which is a compatibility killer in a mixins, so hopefully they can do a rewrite.

Faboslav commented 2 weeks ago

After a lot of work on this, i am closing this, with 2.0.11 release this should be in the state, which is as close as it could be with compatibility between these two mods.