PaperMC/Spigot-API-Patches/0106-ItemStack-getMaxItemUseDuration.patch
Aikar 4ae1989c4f
Restore some SANITY around nullability annotations
Some of these were wrong (scoreboard manager), others are counter to
everything everyone expects (Locations world being null, which wasnt ever safe EVER)
others are just too noisy.

Replace some with Contract to get rid of the nullability constraint and go back to
the old days of IDE not considering it strictly one way or the other.

Also, stop requiring annotations on package-private.

Introduces the next Developer Perk for Paper-API: Your plugin isn't yellow anymore.

Also fixed random dupe code in ensureServerConversions that got mistakenly set in the update.
2019-03-24 19:13:07 -04:00

28 lines
1 KiB
Diff

From ec59e7df8881e52fb38e05e99c430effd5afb875 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
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 3ff3458e7..345dc8bdc 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -602,5 +602,13 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
public String getI18NDisplayName() {
return Bukkit.getServer().getItemFactory().getI18NDisplayName(this);
}
+
+ public int getMaxItemUseDuration() {
+ if (type == null || type == Material.AIR || !type.isItem()) {
+ return 0;
+ }
+ // Requires access to NMS
+ return ensureServerConversions().getMaxItemUseDuration();
+ }
// Paper end
}
--
2.21.0