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 + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java 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 --- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/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; @@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta;
@@ -72,7 +72,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
/** /**
* Represents a stack of items. * 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); return itemMeta != null && itemMeta.hasItemFlag(flag);
} }
// Paper end // Paper end
@@ -108,7 +108,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has a display name + * @return true if this has a display name
+ */ + */
+ public boolean hasDisplayName() { + 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 + * @return true if this has a localized name
+ */ + */
+ public boolean hasLocalizedName() { + public boolean hasLocalizedName() {
+ return getItemMeta().hasLocalizedName(); + return hasItemMeta() && getItemMeta().hasLocalizedName();
+ } + }
+ +
+ /** + /**
@@ -150,7 +150,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has lore + * @return true if this has lore
+ */ + */
+ public boolean hasLore() { + 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 + * @return true if this enchantment exists for this meta
+ */ + */
+ public boolean hasEnchant(@NotNull Enchantment ench) { + 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 + * @return true if an enchantment exists on this meta
+ */ + */
+ public boolean hasEnchants() { + 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 + * @return true if the enchantment conflicts, false otherwise
+ */ + */
+ public boolean hasConflictingEnchant(@NotNull Enchantment ench) { + 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 + * @return true if this has custom model data
+ */ + */
+ public boolean hasCustomModelData() { + public boolean hasCustomModelData() {
+ return getItemMeta().hasCustomModelData(); + return hasItemMeta() && getItemMeta().hasCustomModelData();
+ } + }
+ +
+ /** + /**
@@ -282,7 +282,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return whether block data is already attached + * @return whether block data is already attached
+ */ + */
+ public boolean hasBlockData() { + 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 + * @return true if this has a repair penalty
+ */ + */
+ public boolean hasRepairCost() { + 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 + * @return true if the unbreakable tag is true
+ */ + */
+ public boolean isUnbreakable() { + public boolean isUnbreakable() {
+ return getItemMeta().isUnbreakable(); + return hasItemMeta() && getItemMeta().isUnbreakable();
+ } + }
+ +
+ /** + /**
@@ -369,7 +369,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if any AttributeModifiers exist + * @return true if any AttributeModifiers exist
+ */ + */
+ public boolean hasAttributeModifiers() { + public boolean hasAttributeModifiers() {
+ return getItemMeta().hasAttributeModifiers(); + return hasItemMeta() && getItemMeta().hasAttributeModifiers();
+ } + }
+ +
+ /** + /**
@@ -533,7 +533,7 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ * @return true if this has damage + * @return true if this has damage
+ */ + */
+ public boolean hasDamage() { + 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 + * @return true if this item has placeable keys
+ */ + */
+ public boolean hasPlaceableKeys() { + 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 + * @return true if this item has destroyable keys
+ */ + */
+ public boolean hasDestroyableKeys() { + public boolean hasDestroyableKeys() {
+ return getItemMeta().hasDestroyableKeys(); + return hasItemMeta() && getItemMeta().hasDestroyableKeys();
+ } + }
+ +
+ /** + /**
@@ -697,6 +697,5 @@ index 58f99e3ebac9a01ebffe4d208e16cbee474d4aa3..314658c7dac1b1fbb440ec85133e6670
+ } + }
+ return random.nextInt(unbreaking + 1) > 0; + return random.nextInt(unbreaking + 1) > 0;
+ } + }
+
+ // Purpur end + // Purpur end
} }