From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 5 Jun 2018 22:59:50 -0400 Subject: [PATCH] ItemStack#getMaxItemUseDuration Allows you to determine how long it takes to use a usable/consumable item diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java index 29bc12cb3095282a31f01f08ac66c15b24f42524..90cec86f6f75809e2c6e06313b1a96e77c992c18 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java @@ -13,6 +13,7 @@ import org.bukkit.Translatable; import org.bukkit.Utility; import org.bukkit.configuration.serialization.ConfigurationSerializable; import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.LivingEntity; import org.bukkit.inventory.meta.Damageable; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.material.MaterialData; @@ -670,5 +671,21 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat public String getI18NDisplayName() { return Bukkit.getServer().getItemFactory().getI18NDisplayName(this); } + + /** + * @deprecated use {@link #getMaxItemUseDuration(LivingEntity)}; crossbows, later possibly more items require an entity parameter + */ + @Deprecated(forRemoval = true) + public int getMaxItemUseDuration() { + return getMaxItemUseDuration(null); + } + + public int getMaxItemUseDuration(@NotNull final LivingEntity entity) { + if (type == null || type == Material.AIR || !type.isItem()) { + return 0; + } + // Requires access to NMS + return ensureServerConversions().getMaxItemUseDuration(entity); + } // Paper end }