From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martijn Muijsers Date: Fri, 23 Dec 2022 15:30:58 +0100 Subject: [PATCH] Fix MC-110386 License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org This patch is based on the following patch: "Fix mobs attacking themselves" By: etil2jz <81570777+etil2jz@users.noreply.github.com> As part of: Mirai (https://github.com/etil2jz/Mirai) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) * Mirai description * If an entity is provoked by a second one using commands, the second will join in the fight against itself, causing it to attack itself repeatedly. See https://bugs.mojang.com/browse/MC-110386. diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java index 39ea15c7577af186d93d4ad9a48034d746a86fc8..865eb39f4a1d2207c857acccc0695be92af2d6bb 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java @@ -114,6 +114,11 @@ public class HurtByTargetGoal extends TargetGoal { } protected void alertOther(Mob mob, LivingEntity target) { + // Gale start - Mirai - fix MC-110386 + if (mob == target && mob.level.galeConfig().gameplayMechanics.fixes.mc110386) { + return; + } + // Gale end - Mirai - fix MC-110386 mob.setTarget(target, org.bukkit.event.entity.EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, true); // CraftBukkit - reason } } diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java index aa704ab1f64d0a8572b81e6e41bdb419fba2e4fc..899aa60e2c20c4d973777d4f82f524e2fb902c93 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java @@ -296,6 +296,11 @@ public class GaleWorldConfiguration extends ConfigurationPart { public boolean mc121706 = false; // Gale end - Purpur - fix MC-121706 + // Gale start - Mirai - fix MC-110386 + @Setting("mc-110386") + public boolean mc110386 = true; + // Gale end - Mirai - fix MC-110386 + } }