MC-29274: Fix Wither hostility towards players

This commit is contained in:
TheShermanTanker 2020-10-01 01:18:12 +08:00 committed by MiniDigger | Martin
parent 9e24a52137
commit 964e0bf42b

View file

@ -0,0 +1,33 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: TheShermanTanker <tanksherman27@gmail.com>
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));
}