diff --git a/paper-server/patches/sources/net/minecraft/world/entity/Entity.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/Entity.java.patch index 10e24def5c34..05024bf41718 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/Entity.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/Entity.java.patch @@ -358,6 +358,13 @@ public void tick() { + // Paper start - entity despawn time limit + if (this.despawnTime >= 0 && this.totalEntityAge >= this.despawnTime) { ++ // Fire ItemDespawnEvent for items, allow cancellation ++ if (this instanceof net.minecraft.world.entity.item.ItemEntity itemEntity) { ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(itemEntity).isCancelled()) { ++ itemEntity.age = 0; // Reset age as in vanilla logic ++ return; ++ } ++ } + this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DESPAWN); + return; + }