From e19ddabd08253e867cbac79c0264bcdba0b188e2 Mon Sep 17 00:00:00 2001 From: Gero Date: Sat, 12 Mar 2022 09:26:16 +1100 Subject: [PATCH] #1011: Add Item Unlimited Lifetime APIs --- .../bukkit/craftbukkit/entity/CraftItem.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java index d97374918..daf264ca2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java @@ -41,12 +41,29 @@ public class CraftItem extends CraftEntity implements Item { item.pickupDelay = Math.min(delay, Short.MAX_VALUE); } + @Override + public void setUnlimitedLifetime(boolean unlimited) { + if (unlimited) { + // See EntityItem#INFINITE_LIFETIME + item.age = Short.MIN_VALUE; + } else { + item.age = getTicksLived(); + } + } + + @Override + public boolean isUnlimitedLifetime() { + return item.age == Short.MIN_VALUE; + } + @Override public void setTicksLived(int value) { super.setTicksLived(value); - // Second field for EntityItem - item.age = value; + // Second field for EntityItem (don't set if lifetime is unlimited) + if (!isUnlimitedLifetime()) { + item.age = value; + } } @Override