[1.12.2-1.13.1][Morph 7.2.1] Bound Soul morph transition causes NoSuchMethodError on server
TigerWalts opened this issue ยท 1 comments
Treasure2 Version: 1.12.2-1.13.1 (1.13.2 will be affected too)
Other Mods:
- Morph 1.12.2-7.2.1
Transitioning to or from a Bound Soul Morph will cause the following error on the Server:
java.lang.NoSuchMethodError: com.someguyssoftware.treasure2.entity.monster.BoundSoulEntity.spawnMist()V
at com.someguyssoftware.treasure2.entity.monster.BoundSoulEntity.func_70636_d(BoundSoulEntity.java:103)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:2179)
at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:295)
at net.minecraft.entity.monster.EntityMob.func_70071_h_(EntityMob.java:50)
at me.ichun.mods.morph.common.morph.MorphInfo.tick(MorphInfo.java:113)
at me.ichun.mods.morph.common.core.EventHandlerServer.onServerTick(EventHandlerServer.java:177)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1095_EventHandlerServer_onServerTick_ServerTickEvent.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.fml.common.FMLCommonHandler.onPostServerTick(FMLCommonHandler.java:266)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:712)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526)
at java.lang.Thread.run(Thread.java:748)
What appears to be happening:
BoundSoulEntity.spawnMist()
is a Client only method- During a Morph transtion
onUpdate()
is called per tick for the 2 entities that are being transitioned between - Treasure2 checks it's not server side using the entity before calling
spawnMist()
if (!this.isServerWorld()) {
spawnMist();
}
- This check fails and
spawnMist()
is called on the server
Current Workaround:
- Add
treasure2:bound_soul
to Morph's Mob blacklist.
To fix a player who is causing this you need to amend the player data with an NBT editor. Either:
- Remove all the Morph data in the player data file: Delete the
ForgeData.PlayerPersisted.MorphSave
tag
or if you want to keep the Morph data:
- Remove the current Morph state: Delete the
ForgeData.PlayerPersisted.MorphSave.currentMorph
tag - Remove the morph variant for
treasure2.bound_soul
:- Delete the
ForgeData.PlayerPersisted.MorphSave.variant_X
tag (wherevariant_X
is the one with the entIdtreasure2:bound_soul
) - Rename all the remaining
ForgeData.PlayerPersisted.MorphSave.variant_X
tags so there are no gaps in the numbering - Decrease the
ForgeData.PlayerPersisted.MorphSave.variantCount
by 1
- Delete the