diff --git a/Spigot-Server-Patches/0682-MC-29274-Fix-Wither-hostility-towards-players.patch b/Spigot-Server-Patches/0682-MC-29274-Fix-Wither-hostility-towards-players.patch new file mode 100644 index 000000000..49e44638c --- /dev/null +++ b/Spigot-Server-Patches/0682-MC-29274-Fix-Wither-hostility-towards-players.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: TheShermanTanker +Date: Thu, 1 Oct 2020 01:11:03 +0800 +Subject: [PATCH] MC-29274: Fix Wither hostility towards players + + +diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +index 0776e68340b0510cc99084bea80791d562dfea40..b473709774fbbd502d5e04c98041ae7c829b4083 100644 +--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java ++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +@@ -804,4 +804,10 @@ public class PaperWorldConfig { + private void setUpdatePathfindingOnBlockUpdate() { + updatePathfindingOnBlockUpdate = getBoolean("update-pathfinding-on-block-update", this.updatePathfindingOnBlockUpdate); + } ++ ++ public boolean fixWitherTargetingBug = false; ++ private void witherSettings() { ++ fixWitherTargetingBug = getBoolean("fix-wither-targeting-bug", false); ++ log("Withers properly target players: " + fixWitherTargetingBug); ++ } + } +diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java +index 2e623ef9be036ea467e9e41817c2eced018f8f93..b1159f0258eca2bee52ec0939ba86792d24a1f99 100644 +--- a/src/main/java/net/minecraft/server/EntityWither.java ++++ b/src/main/java/net/minecraft/server/EntityWither.java +@@ -54,6 +54,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { + this.goalSelector.a(6, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); + this.goalSelector.a(7, new PathfinderGoalRandomLookaround(this)); + this.targetSelector.a(1, new PathfinderGoalHurtByTarget(this, new Class[0])); ++ if(this.world.paperConfig.fixWitherTargetingBug) this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, 0, false, false, null)); // Paper - Fix MC-29274 + this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityInsentient.class, 0, false, false, EntityWither.by)); + } +