From 97ee8f10e063d724a2e7815c97ee1a7ed7328470 Mon Sep 17 00:00:00 2001 From: Kli Kli Date: Tue, 25 Feb 2025 08:37:22 +0100 Subject: [PATCH] fix: ensure beholder can deal damage even if owner player cannot be retrieved Closes #1256 --- .../common/entity/familiar/BeholderFamiliarEntity.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/BeholderFamiliarEntity.java b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/BeholderFamiliarEntity.java index e2860a9a9..fc00231b3 100644 --- a/src/main/java/com/klikli_dev/occultism/common/entity/familiar/BeholderFamiliarEntity.java +++ b/src/main/java/com/klikli_dev/occultism/common/entity/familiar/BeholderFamiliarEntity.java @@ -30,7 +30,6 @@ import com.klikli_dev.occultism.util.FamiliarUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.DustParticleOptions; -import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; @@ -266,7 +265,7 @@ public void shootRay(List targetIds) { private static class RayGoal extends Goal { - private static final int MAX_COOLDOWN = 20 * 1; + private static final int MAX_COOLDOWN = 20; protected final BeholderFamiliarEntity entity; private int cooldown = MAX_COOLDOWN; @@ -323,8 +322,13 @@ protected void attack() { if (this.entity.hasEffect(MobEffects.DAMAGE_BOOST)) damage *= this.entity.getEffect(MobEffects.DAMAGE_BOOST).getAmplifier() + 2; - if (e != null && owner instanceof Player player) { + if (e == null) + continue; + + if (owner instanceof Player player) { e.hurt(this.entity.damageSources().playerAttack(player), damage); + } else { + e.hurt(this.entity.damageSources().mobAttack(this.entity), damage); } } }