Boss Health Regain

Boss Health Regain

551k Downloads

[1.19.2-1.1.1][Crash] onLivingHurt Event Handler assumes damage source entity is Player -> ClassCastException

TigerWalts opened this issue ยท 0 comments

commented

The onLivingHurt event handler in TraitEventHandler assumes that the damage source is from a Player entity:

@SubscribeEvent
public static void onLivingHurt(LivingHurtEvent event) {
LivingEntity attacked = event.getEntity();
DamageSource source = event.getSource();
if (source == null || !"player".equals(source.msgId))
return;
Entity attacker = source.getEntity();
Player player = (Player) attacker;

This is not guaranteed. In the following crash report Minecolonies Citizens have been given shields with damage effects on blocking:

https://gist.github.com/TigerWalts/c3d6d4178777f41e364060660e20a8cb

java.lang.ClassCastException: class com.minecolonies.coremod.entity.citizen.EntityCitizen cannot be cast to class net.minecraft.world.entity.player.Player (com.minecolonies.coremod.entity.citizen.EntityCitizen is in module [email protected] of loader 'TRANSFORMER' @7e848aea; net.minecraft.world.entity.player.Player is in module [email protected] of loader 'TRANSFORMER' @7e848aea)
	at com.github.dragoni7.silentcompat.event.TraitEventHandler.onLivingHurt(TraitEventHandler.java:295) ~[SilentCompat-forge-1.19.2-1.1.1.jar%23578!/:1.1.1] {re:classloading}
	at com.github.dragoni7.silentcompat.event.__TraitEventHandler_onLivingHurt_LivingHurtEvent.invoke(.dynamic) ~[SilentCompat-forge-1.19.2-1.1.1.jar%23578!/:1.1.1] {re:classloading,pl:eventbus:B}
	at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.3.jar%2351!/:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.3.jar%2351!/:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.3.jar%2351!/:?] {}
	at net.minecraftforge.common.ForgeHooks.onLivingHurt(ForgeHooks.java:343) ~[forge-1.19.2-43.2.6-universal.jar%23644!/:?] {re:classloading}
	at net.minecraft.world.entity.LivingEntity.m_6475_(LivingEntity.java:1578) ~[server-1.19.2-20220805.130853-srg.jar%23639!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:LivingEntityMixin,pl:mixin:APP:apotheosis.mixins.json:LivingEntityMixin,pl:mixin:APP:apotheosis.mixins.json:LivingEntityInvoker,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:botania_xplat.mixins.json:LivingEntityAccessor,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:caelus.mixins.json:MixinLivingEntity,pl:mixin:APP:ars_nouveau.mixins.json:elytra.MixinLivingEntity,pl:mixin:APP:ars_nouveau.mixins.json:perks.PerkLivingEntity,pl:mixin:APP:whisperwoods.mixins.json:LivingEntityMixin,pl:mixin:APP:ad_astra-common.mixins.json:LivingEntityMixin,pl:mixin:APP:ad_astra-common.mixins.json:gravity.LivingEntityGravityMixin,pl:mixin:APP:netherportalfix.mixins.json:LivingEntityAccessor,pl:mixin:APP:bookshelf.common.mixins.json:entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:entity.MixinLivingEntity,pl:mixin:APP:morefrogs.mixins.json:LivingEntityMixin,pl:mixin:APP:spirit.common.mixins.json:LivingEntityMixin,pl:mixin:APP:enchantwithmob.mixins.json:LivingEntityMixin,pl:mixin:APP:voidtotem.mixins.json:LivingEntityMixin,pl:mixin:APP:hexplat.mixins.json:accessor.AccessorLivingEntity,pl:mixin:APP:quark.mixins.json:accessor.AccessorLivingEntity,pl:mixin:APP:bettertridents.common.mixins.json:LivingEntityMixin,pl:mixin:APP:charmofundying.mixins.json:MixinLivingEntity,pl:mixin:APP:expandability.mixins.json:swimming.LivingEntityMixin,pl:mixin:APP:expandability-common.mixins.json:swimming.LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:A}
	at net.minecraft.world.entity.LivingEntity.m_6469_(LivingEntity.java:1073) ~[server-1.19.2-20220805.130853-srg.jar%23639!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:LivingEntityMixin,pl:mixin:APP:apotheosis.mixins.json:LivingEntityMixin,pl:mixin:APP:apotheosis.mixins.json:LivingEntityInvoker,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:botania_xplat.mixins.json:LivingEntityAccessor,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:caelus.mixins.json:MixinLivingEntity,pl:mixin:APP:ars_nouveau.mixins.json:elytra.MixinLivingEntity,pl:mixin:APP:ars_nouveau.mixins.json:perks.PerkLivingEntity,pl:mixin:APP:whisperwoods.mixins.json:LivingEntityMixin,pl:mixin:APP:ad_astra-common.mixins.json:LivingEntityMixin,pl:mixin:APP:ad_astra-common.mixins.json:gravity.LivingEntityGravityMixin,pl:mixin:APP:netherportalfix.mixins.json:LivingEntityAccessor,pl:mixin:APP:bookshelf.common.mixins.json:entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:entity.MixinLivingEntity,pl:mixin:APP:morefrogs.mixins.json:LivingEntityMixin,pl:mixin:APP:spirit.common.mixins.json:LivingEntityMixin,pl:mixin:APP:enchantwithmob.mixins.json:LivingEntityMixin,pl:mixin:APP:voidtotem.mixins.json:LivingEntityMixin,pl:mixin:APP:hexplat.mixins.json:accessor.AccessorLivingEntity,pl:mixin:APP:quark.mixins.json:accessor.AccessorLivingEntity,pl:mixin:APP:bettertridents.common.mixins.json:LivingEntityMixin,pl:mixin:APP:charmofundying.mixins.json:MixinLivingEntity,pl:mixin:APP:expandability.mixins.json:swimming.LivingEntityMixin,pl:mixin:APP:expandability-common.mixins.json:swimming.LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:A}
	at shadows.apotheosis.adventure.affix.effect.PsychicAffix.onShieldBlock(PsychicAffix.java:52) ~[Apotheosis-1.19.2-6.1.1.jar%23380!/:6.1.1] {re:classloading}
	at shadows.apotheosis.adventure.affix.AffixInstance.onShieldBlock(AffixInstance.java:129) ~[Apotheosis-1.19.2-6.1.1.jar%23380!/:6.1.1] {re:mixin,re:classloading}
	at shadows.apotheosis.adventure.AdventureEvents.shieldBlock(AdventureEvents.java:300) ~[Apotheosis-1.19.2-6.1.1.jar%23380!/:6.1.1] {re:classloading}
	at shadows.apotheosis.adventure.__AdventureEvents_shieldBlock_ShieldBlockEvent.invoke(.dynamic) ~[Apotheosis-1.19.2-6.1.1.jar%23380!/:6.1.1] {re:classloading,pl:eventbus:B}
	at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.3.jar%2351!/:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.3.jar%2351!/:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.3.jar%2351!/:?] {}
	at net.minecraftforge.common.ForgeHooks.onShieldBlock(ForgeHooks.java:1379) ~[forge-1.19.2-43.2.6-universal.jar%23644!/:?] {re:classloading}
	at net.minecraft.world.entity.LivingEntity.m_6469_(LivingEntity.java:1044) ~[server-1.19.2-20220805.130853-srg.jar%23639!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:LivingEntityMixin,pl:mixin:APP:apotheosis.mixins.json:LivingEntityMixin,pl:mixin:APP:apotheosis.mixins.json:LivingEntityInvoker,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin,pl:mixin:APP:botania_xplat.mixins.json:LivingEntityAccessor,pl:mixin:APP:curios.mixins.json:MixinLivingEntity,pl:mixin:APP:caelus.mixins.json:MixinLivingEntity,pl:mixin:APP:ars_nouveau.mixins.json:elytra.MixinLivingEntity,pl:mixin:APP:ars_nouveau.mixins.json:perks.PerkLivingEntity,pl:mixin:APP:whisperwoods.mixins.json:LivingEntityMixin,pl:mixin:APP:ad_astra-common.mixins.json:LivingEntityMixin,pl:mixin:APP:ad_astra-common.mixins.json:gravity.LivingEntityGravityMixin,pl:mixin:APP:netherportalfix.mixins.json:LivingEntityAccessor,pl:mixin:APP:bookshelf.common.mixins.json:entity.AccessorLivingEntity,pl:mixin:APP:bookshelf.common.mixins.json:entity.MixinLivingEntity,pl:mixin:APP:morefrogs.mixins.json:LivingEntityMixin,pl:mixin:APP:spirit.common.mixins.json:LivingEntityMixin,pl:mixin:APP:enchantwithmob.mixins.json:LivingEntityMixin,pl:mixin:APP:voidtotem.mixins.json:LivingEntityMixin,pl:mixin:APP:hexplat.mixins.json:accessor.AccessorLivingEntity,pl:mixin:APP:quark.mixins.json:accessor.AccessorLivingEntity,pl:mixin:APP:bettertridents.common.mixins.json:LivingEntityMixin,pl:mixin:APP:charmofundying.mixins.json:MixinLivingEntity,pl:mixin:APP:expandability.mixins.json:swimming.LivingEntityMixin,pl:mixin:APP:expandability-common.mixins.json:swimming.LivingEntityMixin,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor,pl:mixin:A}
	at com.minecolonies.coremod.entity.citizen.EntityCitizen.handleDamagePerformed(EntityCitizen.java:1661) ~[minecolonies-1.19.2-1.0.1283-ALPHA.jar%23518!/:1.19.2-1.0.1283-ALPHA] {re:classloading}
	at com.minecolonies.coremod.entity.citizen.EntityCitizen.m_6469_(EntityCitizen.java:1528) ~[minecolonies-1.19.2-1.0.1283-ALPHA.jar%23518!/:1.19.2-1.0.1283-ALPHA] {re:classloading}
	at net.minecraft.world.entity.projectile.AbstractArrow.m_5790_(AbstractArrow.java:327) ~[server-1.19.2-20220805.130853-srg.jar%23639!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:supplementaries-common.mixins.json:AbstractArrowMixin,pl:mixin:APP:ad_astra-common.mixins.json:gravity.AbstractArrowMixin,pl:mixin:APP:quark.mixins.json:accessor.AccessorAbstractArrow,pl:mixin:A}
	at net.minecraft.world.entity.projectile.Projectile.m_6532_(Projectile.java:135) ~[server-1.19.2-20220805.130853-srg.jar%23639!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
	at net.minecraft.world.entity.projectile.AbstractArrow.m_8119_(AbstractArrow.java:189) ~[server-1.19.2-20220805.130853-srg.jar%23639!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:supplementaries-common.mixins.json:AbstractArrowMixin,pl:mixin:APP:ad_astra-common.mixins.json:gravity.AbstractArrowMixin,pl:mixin:APP:quark.mixins.json:accessor.AccessorAbstractArrow,pl:mixin:A}
	at net.minecraft.world.entity.projectile.Arrow.m_8119_(Arrow.java:104) ~[server-1.19.2-20220805.130853-srg.jar%23639!/:?] {re:classloading,pl:accesstransformer:B}
	at net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:658) ~[server-1.19.2-20220805.130853-srg.jar%23639!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:kubejs-common.mixins.json:ServerLevelMixin,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin,pl:mixin:APP:botania_xplat.mixins.json:ServerLevelMixin,pl:mixin:APP:immersiveengineering.mixins.json:coremods.ServerWorldMixin,pl:mixin:APP:corgilib.mixins.json:MixinServerLevel,pl:mixin:APP:byg.mixins.json:common.world.MixinServerLevel,pl:mixin:APP:ad_astra-common.mixins.json:ServerLevelMixin,pl:mixin:APP:ars_elemental.mixins.json:ServerLevelMixin,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor,pl:mixin:A}