Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-21 05:50:05 +01:00
31 Zeilen
1.7 KiB
Diff
31 Zeilen
1.7 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/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
||
|
index 6225f390b51733217a809910182f58acea1055e2..73df844610530bbfb133bd59d00015117b59b215 100644
|
||
|
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
||
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
|
||
|
@@ -169,6 +169,7 @@ public abstract class AbstractArrow extends Projectile {
|
||
|
|
||
|
++this.inGroundTime;
|
||
|
} else {
|
||
|
+ if (tickCount > 200) this.tickDespawnCounter(); // Paper - tick despawnCounter regardless after 10 seconds
|
||
|
this.inGroundTime = 0;
|
||
|
Vec3 vec3d2 = this.position();
|
||
|
|
||
|
@@ -290,6 +291,7 @@ public abstract class AbstractArrow extends Projectile {
|
||
|
|
||
|
}
|
||
|
|
||
|
+ 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?
|