From bdab56d256db992e6170634a53c742b369d4814b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 21 Feb 2020 17:54:13 -0600 Subject: [PATCH] Always increment arrow despawn counter (fixes MC-125757) --- ...-arrow-despawn-counter-fixes-MC-1257.patch | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 patches/server/0098-Always-increment-arrow-despawn-counter-fixes-MC-1257.patch diff --git a/patches/server/0098-Always-increment-arrow-despawn-counter-fixes-MC-1257.patch b/patches/server/0098-Always-increment-arrow-despawn-counter-fixes-MC-1257.patch new file mode 100644 index 000000000..d384b306c --- /dev/null +++ b/patches/server/0098-Always-increment-arrow-despawn-counter-fixes-MC-1257.patch @@ -0,0 +1,42 @@ +From bc866e1393a6d6db6978d5e84d445b233115dce4 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Fri, 21 Feb 2020 17:04:51 -0600 +Subject: [PATCH] Always increment arrow despawn counter (fixes MC-125757) + +--- + src/main/java/net/minecraft/server/EntityArrow.java | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java +index 9c97edf9c9..2dae2c1c89 100644 +--- a/src/main/java/net/minecraft/server/EntityArrow.java ++++ b/src/main/java/net/minecraft/server/EntityArrow.java +@@ -147,6 +147,8 @@ public abstract class EntityArrow extends Entity implements IProjectile { + this.extinguish(); + } + ++ this.checkDespawnCounter(); // Purpur - moved from below - MC-125757 ++ + if (this.inGround && !flag) { + if (this.aq != iblockdata && this.world.a(this.getBoundingBox().g(0.06D))) { + this.inGround = false; +@@ -154,7 +156,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { + this.despawnCounter = 0; + this.as = 0; + } else if (!this.world.isClientSide) { +- this.i(); ++ // this.i(); // Purpur moved up - MC-125757 + } + + ++this.d; +@@ -275,6 +277,7 @@ public abstract class EntityArrow extends Entity implements IProjectile { + } + } + ++ protected void checkDespawnCounter() { i(); } // Purpur - OBFHELPER + protected void i() { + ++this.despawnCounter; + if (this.despawnCounter >= (fromPlayer == PickupStatus.CREATIVE_ONLY ? world.paperConfig.creativeArrowDespawnRate : (fromPlayer == PickupStatus.DISALLOWED ? world.paperConfig.nonPlayerArrowDespawnRate : ((this instanceof EntityThrownTrident) ? world.spigotConfig.tridentDespawnRate : world.spigotConfig.arrowDespawnRate)))) { // Spigot // Paper - TODO: Extract this to init? +-- +2.24.0 +