mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-29 19:52:55 +01:00
7ae47d4eb3
Mojang fixed it in MC-63720
30 lines
1.6 KiB
Diff
30 lines
1.6 KiB
Diff
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/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
|
|
index 402684ee2a42eefc843df663a1f3af9a8a66a0bb..1e7f5957d879d1ba8cf2b29cf9397b8e204e4381 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?
|