ItemStack convenience methods

Co-authored-by: granny <granny@purpurmc.org>
This commit is contained in:
William Blake Galbreath
2025-01-05 12:00:59 -08:00
committed by granny
parent 30672ed8f7
commit a8e622ac7f
3 changed files with 52 additions and 70 deletions

View File

@@ -0,0 +1,43 @@
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -5811,4 +_,40 @@
return this.asItemType().getDefaultDataTypes();
}
// Paper end - data component API
+
+ // Purpur start - ItemStack convenience methods
+ public boolean isArmor() {
+ switch (this) {
+ // <editor-fold defaultstate="collapsed" desc="isarmor">
+ case LEATHER_BOOTS:
+ case LEATHER_CHESTPLATE:
+ case LEATHER_HELMET:
+ case LEATHER_LEGGINGS:
+ case CHAINMAIL_BOOTS:
+ case CHAINMAIL_CHESTPLATE:
+ case CHAINMAIL_HELMET:
+ case CHAINMAIL_LEGGINGS:
+ case IRON_BOOTS:
+ case IRON_CHESTPLATE:
+ case IRON_HELMET:
+ case IRON_LEGGINGS:
+ case GOLDEN_BOOTS:
+ case GOLDEN_CHESTPLATE:
+ case GOLDEN_HELMET:
+ case GOLDEN_LEGGINGS:
+ case DIAMOND_BOOTS:
+ case DIAMOND_CHESTPLATE:
+ case DIAMOND_HELMET:
+ case DIAMOND_LEGGINGS:
+ case NETHERITE_BOOTS:
+ case NETHERITE_CHESTPLATE:
+ case NETHERITE_HELMET:
+ case NETHERITE_LEGGINGS:
+ case TURTLE_HELMET:
+ return true;
+ default:
+ return false;
+ }
+ }
+ // Purpur end - ItemStack convenience methods
}

View File

@@ -1,78 +1,25 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sun, 15 Mar 2020 20:52:12 -0500
Subject: [PATCH] ItemStack convenience methods
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index e89edabd36a6755912694d8a8700da4ebe5c5829..ba2eff0f2ecffbea4b42d5c6e4485ee0087dc981 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -5811,4 +5811,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla
return this.asItemType().getDefaultDataTypes();
}
// Paper end - data component API
+
+ // Purpur start
+ public boolean isArmor() {
+ switch (this) {
+ // <editor-fold defaultstate="collapsed" desc="isarmor">
+ case LEATHER_BOOTS:
+ case LEATHER_CHESTPLATE:
+ case LEATHER_HELMET:
+ case LEATHER_LEGGINGS:
+ case CHAINMAIL_BOOTS:
+ case CHAINMAIL_CHESTPLATE:
+ case CHAINMAIL_HELMET:
+ case CHAINMAIL_LEGGINGS:
+ case IRON_BOOTS:
+ case IRON_CHESTPLATE:
+ case IRON_HELMET:
+ case IRON_LEGGINGS:
+ case GOLDEN_BOOTS:
+ case GOLDEN_CHESTPLATE:
+ case GOLDEN_HELMET:
+ case GOLDEN_LEGGINGS:
+ case DIAMOND_BOOTS:
+ case DIAMOND_CHESTPLATE:
+ case DIAMOND_HELMET:
+ case DIAMOND_LEGGINGS:
+ case NETHERITE_BOOTS:
+ case NETHERITE_CHESTPLATE:
+ case NETHERITE_HELMET:
+ case NETHERITE_LEGGINGS:
+ case TURTLE_HELMET:
+ return true;
+ default:
+ return false;
+ }
+ }
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index 8c9654cd19af8b28fa276a55c5060eb389e60c1c..875124b06d87cd4163f0ab1d4dd75f939622f8aa 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
@@ -19,6 +19,13 @@ import org.bukkit.inventory.meta.ItemMeta; @@ -19,6 +_,13 @@
import org.bukkit.material.MaterialData; import org.bukkit.material.MaterialData;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
+// Purpur start +// Purpur start - ItemStack convenience methods
+import com.google.common.collect.Multimap; +import com.google.common.collect.Multimap;
+import java.util.Collection; +import java.util.Collection;
+import org.bukkit.attribute.Attribute; +import org.bukkit.attribute.Attribute;
+import org.bukkit.attribute.AttributeModifier; +import org.bukkit.attribute.AttributeModifier;
+import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.BlockData;
+// Purpur end +// Purpur end - ItemStack convenience methods
/** /**
* Represents a stack of items. * Represents a stack of items.
@@ -1318,4 +1325,482 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -1318,4 +_,482 @@
return this.craftDelegate.matchesWithoutData(item, excludeTypes, ignoreCount); return this.craftDelegate.matchesWithoutData(item, excludeTypes, ignoreCount);
} }
// Paper end - data component API // Paper end - data component API
+ +
+ // Purpur start + // Purpur start - ItemStack convenience methods
+ /** + /**
+ * Gets the display name that is set. + * Gets the display name that is set.
+ * <p> + * <p>
@@ -548,5 +495,5 @@ index 8c9654cd19af8b28fa276a55c5060eb389e60c1c..875124b06d87cd4163f0ab1d4dd75f93
+ public boolean damage(int amount, boolean ignoreUnbreaking) { + public boolean damage(int amount, boolean ignoreUnbreaking) {
+ return this.craftDelegate.damage(amount, ignoreUnbreaking); + return this.craftDelegate.damage(amount, ignoreUnbreaking);
+ } + }
+ // Purpur end + // Purpur end - ItemStack convenience methods
} }

View File

@@ -1,19 +1,11 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: granny <contact@granny.dev>
Date: Thu, 3 Oct 2024 18:33:14 -0700
Subject: [PATCH] ItemStack convenience methods
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
index 78975412da0f0c2b802bfce6d30d56b26d8023e2..4ec6a07796023aab2f8f84f131f48108c235c852 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -658,4 +658,285 @@ public final class CraftItemStack extends ItemStack { @@ -658,4 +_,285 @@
} }
// Paper end - data component API // Paper end - data component API
+ +
+ // Purpur start + // Purpur start - ItemStack convenience methods
+ @Override + @Override
+ public String getDisplayName() { + public String getDisplayName() {
+ return getItemMeta().getDisplayName(); + return getItemMeta().getDisplayName();
@@ -292,5 +284,5 @@ index 78975412da0f0c2b802bfce6d30d56b26d8023e2..4ec6a07796023aab2f8f84f131f48108
+ } + }
+ return random.nextInt(unbreaking + 1) > 0; + return random.nextInt(unbreaking + 1) > 0;
+ } + }
+ // Purpur end + // Purpur end - ItemStack convenience methods
} }