Dont create item meta when checking if meta properties exist

This commit is contained in:
BillyGalbreath
2021-05-09 17:57:07 -05:00
parent 90339c5ae3
commit a80e5b60e1

View File

@@ -50,7 +50,7 @@ index 9b1c9e60dba9ea3ef8d8e164f13dd76daf57db8e..b04e9de7183f00a9a47c1fce26895c83
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670e52ba684 100644
index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..9154ad938505a8ade190a78574eb49348525fd6a 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta;
@@ -72,7 +72,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
/**
* Represents a stack of items.
@@ -843,4 +855,627 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor
@@ -843,4 +855,626 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor
return itemMeta != null && itemMeta.hasItemFlag(flag);
}
// Paper end
@@ -108,7 +108,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has a display name
+ */
+ public boolean hasDisplayName() {
+ return getItemMeta().hasDisplayName();
+ return hasItemMeta() && getItemMeta().hasDisplayName();
+ }
+
+ /**
@@ -141,7 +141,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has a localized name
+ */
+ public boolean hasLocalizedName() {
+ return getItemMeta().hasLocalizedName();
+ return hasItemMeta() && getItemMeta().hasLocalizedName();
+ }
+
+ /**
@@ -150,7 +150,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has lore
+ */
+ public boolean hasLore() {
+ return getItemMeta().hasLore();
+ return hasItemMeta() && getItemMeta().hasLore();
+ }
+
+ /**
@@ -160,7 +160,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this enchantment exists for this meta
+ */
+ public boolean hasEnchant(@NotNull Enchantment ench) {
+ return getItemMeta().hasEnchant(ench);
+ return hasItemMeta() && getItemMeta().hasEnchant(ench);
+ }
+
+ /**
@@ -221,7 +221,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if an enchantment exists on this meta
+ */
+ public boolean hasEnchants() {
+ return getItemMeta().hasEnchants();
+ return hasItemMeta() && getItemMeta().hasEnchants();
+ }
+
+ /**
@@ -232,7 +232,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if the enchantment conflicts, false otherwise
+ */
+ public boolean hasConflictingEnchant(@NotNull Enchantment ench) {
+ return getItemMeta().hasConflictingEnchant(ench);
+ return hasItemMeta() && getItemMeta().hasConflictingEnchant(ench);
+ }
+
+ /**
@@ -273,7 +273,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has custom model data
+ */
+ public boolean hasCustomModelData() {
+ return getItemMeta().hasCustomModelData();
+ return hasItemMeta() && getItemMeta().hasCustomModelData();
+ }
+
+ /**
@@ -282,7 +282,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return whether block data is already attached
+ */
+ public boolean hasBlockData() {
+ return ((BlockDataMeta) getItemMeta()).hasBlockData();
+ return hasItemMeta() && ((BlockDataMeta) getItemMeta()).hasBlockData();
+ }
+
+ /**
@@ -339,7 +339,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has a repair penalty
+ */
+ public boolean hasRepairCost() {
+ return ((Repairable) getItemMeta()).hasRepairCost();
+ return hasItemMeta() && ((Repairable) getItemMeta()).hasRepairCost();
+ }
+
+ /**
@@ -349,7 +349,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if the unbreakable tag is true
+ */
+ public boolean isUnbreakable() {
+ return getItemMeta().isUnbreakable();
+ return hasItemMeta() && getItemMeta().isUnbreakable();
+ }
+
+ /**
@@ -369,7 +369,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if any AttributeModifiers exist
+ */
+ public boolean hasAttributeModifiers() {
+ return getItemMeta().hasAttributeModifiers();
+ return hasItemMeta() && getItemMeta().hasAttributeModifiers();
+ }
+
+ /**
@@ -533,7 +533,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has damage
+ */
+ public boolean hasDamage() {
+ return ((Damageable) getItemMeta()).hasDamage();
+ return hasItemMeta() && ((Damageable) getItemMeta()).hasDamage();
+ }
+
+ /**
@@ -605,7 +605,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this item has placeable keys
+ */
+ public boolean hasPlaceableKeys() {
+ return getItemMeta().hasPlaceableKeys();
+ return hasItemMeta() && getItemMeta().hasPlaceableKeys();
+ }
+
+ /**
@@ -614,7 +614,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this item has destroyable keys
+ */
+ public boolean hasDestroyableKeys() {
+ return getItemMeta().hasDestroyableKeys();
+ return hasItemMeta() && getItemMeta().hasDestroyableKeys();
+ }
+
+ /**
@@ -697,6 +697,5 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ }
+ return random.nextInt(unbreaking + 1) > 0;
+ }
+
+ // Purpur end
}