From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: HaHaWTH Date: Fri, 15 Mar 2024 03:16:22 +0800 Subject: [PATCH] Fix-MC-172047 diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java index 2d20b2c1f58beb1ad8c9012d8124e476899e6be6..8f7f53a355a5db5f32cae511484c1cf4b15e37e3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -529,13 +529,34 @@ public class Wolf extends TamableAnimal implements NeutralMob { @Override public boolean wantsToAttack(LivingEntity target, LivingEntity owner) { - if (!(target instanceof Creeper) && !(target instanceof Ghast)) { + if (!(target instanceof Creeper) && !(target instanceof Ghast) && !(target instanceof net.minecraft.world.entity.decoration.ArmorStand)) { // Luminol - Fix MC-172047 if (target instanceof Wolf) { Wolf entitywolf = (Wolf) target; return !entitywolf.isTame() || entitywolf.getOwner() != owner; } else { - return target instanceof Player && owner instanceof Player && !((Player) owner).canHarmPlayer((Player) target) ? false : (target instanceof AbstractHorse && ((AbstractHorse) target).isTamed() ? false : !(target instanceof TamableAnimal) || !((TamableAnimal) target).isTame()); + // Luminol start + if (target instanceof Player) { + Player targetPlayer = (Player) target; + if (owner instanceof Player) { + Player ownerPlayer = (Player) owner; + if (!ownerPlayer.canHarmPlayer(targetPlayer)) { + return false; + } + } + } + if (target instanceof AbstractHorse) { + AbstractHorse targetHorse = (AbstractHorse) target; + if (targetHorse.isTamed()) { + return false; + } + } + if (target instanceof TamableAnimal) { + TamableAnimal tamableAnimalTarget = (TamableAnimal) target; + return !tamableAnimalTarget.isTame(); + } + return true; + // Luminol end } } else { return false;