aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0541-Fix-arrows-never-despawning-MC-125757.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0541-Fix-arrows-never-despawning-MC-125757.patch')
-rw-r--r--Spigot-Server-Patches/0541-Fix-arrows-never-despawning-MC-125757.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0541-Fix-arrows-never-despawning-MC-125757.patch b/Spigot-Server-Patches/0541-Fix-arrows-never-despawning-MC-125757.patch
new file mode 100644
index 0000000000..a65fde01f4
--- /dev/null
+++ b/Spigot-Server-Patches/0541-Fix-arrows-never-despawning-MC-125757.patch
@@ -0,0 +1,30 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: William Blake Galbreath <[email protected]>
+Date: Wed, 8 Jul 2020 11:24:30 -0500
+Subject: [PATCH] Fix arrows never despawning MC-125757
+
+This forces the despawn counter to start ticking regardless of
+state after the arrow has been alive for 200 ticks (10 seconds)
+instead of getting stuck in a never despawn state (bubble columns,
+etc).
+
+diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
+index f8772a853ea9b5ca45c78a2fd8bd3f1fa6abf5d2..0d43eb8e1712d1b98888db7579bc343ccb1e8989 100644
+--- a/src/main/java/net/minecraft/server/EntityArrow.java
++++ b/src/main/java/net/minecraft/server/EntityArrow.java
+@@ -133,6 +133,7 @@ public abstract class EntityArrow extends IProjectile {
+
+ ++this.c;
+ } else {
++ if (ticksLived > 200) this.tickDespawnCounter(); // Paper - tick despawnCounter regardless after 10 seconds
+ this.c = 0;
+ Vec3D vec3d2 = this.getPositionVector();
+
+@@ -254,6 +255,7 @@ public abstract class EntityArrow extends IProjectile {
+
+ }
+
++ protected final void tickDespawnCounter() { this.h(); } // Paper - OBFHELPER
+ protected void h() {
+ ++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?