From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath 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?