Paper/patches/server/0491-Fix-arrows-never-despawning-MC-125757.patch

31 lines
1.7 KiB
Diff
Raw Normal View History

2021-06-11 12:02:28 +00:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
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/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
index 65faf775b786f9c237ee33c1fb0f8ab9f37d738c..8b91d86b8d5594d526e5ce7943572b91c70ef7f2 100644
2021-06-11 12:02:28 +00:00
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
2021-06-14 09:46:59 +00:00
@@ -198,6 +198,7 @@ public abstract class AbstractArrow extends Projectile {
2021-06-11 12:02:28 +00:00
++this.inGroundTime;
} else {
+ if (tickCount > 200) this.tickDespawnCounter(); // Paper - tick despawnCounter regardless after 10 seconds
this.inGroundTime = 0;
Vec3 vec3d2 = this.position();
2021-06-14 09:46:59 +00:00
@@ -319,6 +320,7 @@ public abstract class AbstractArrow extends Projectile {
2021-06-11 12:02:28 +00:00
}
+ protected final void tickDespawnCounter() { this.tickDespawn(); } // Paper - OBFHELPER
protected void tickDespawn() {
++this.life;
if (this.life >= (pickup == Pickup.CREATIVE_ONLY ? level.paperConfig.creativeArrowDespawnRate : (pickup == Pickup.DISALLOWED ? level.paperConfig.nonPlayerArrowDespawnRate : ((this instanceof ThrownTrident) ? level.spigotConfig.tridentDespawnRate : level.spigotConfig.arrowDespawnRate)))) { // Spigot // Paper - TODO: Extract this to init?