3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-15 02:50:09 +01:00

Use ItemStack.empty() when air is passed into constructor

Dieser Commit ist enthalten in:
Nassim Jahnke 2024-06-18 15:31:30 +02:00
Ursprung 4514f41ffa
Commit 090775eff4
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: EF6771C01F6EF02F
2 geänderte Dateien mit 28 neuen und 26 gelöschten Zeilen

Datei anzeigen

@ -16,7 +16,7 @@ index 7332034bb1753f48f7904dafab1ef4b3ee117ea3..11bccf6c27b8b2a2ed558a1375a3b3ad
+ ItemStack createEmptyStack(); // Paper - proxy ItemStack + ItemStack createEmptyStack(); // Paper - proxy ItemStack
} }
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 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c5980c01b57b 100644 index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..2b414b01f80f9c683381c92deb1fca2ec15be2c7 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
@@ -28,10 +28,38 @@ import org.jetbrains.annotations.Nullable; @@ -28,10 +28,38 @@ import org.jetbrains.annotations.Nullable;
@ -83,17 +83,19 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
public ItemStack(@NotNull final Material type, final int amount) { public ItemStack(@NotNull final Material type, final int amount) {
this(type, amount, (short) 0); this(type, amount, (short) 0);
} }
@@ -93,8 +127,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -93,8 +127,9 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
type = Bukkit.getUnsafe().fromLegacy(new MaterialData(type, data == null ? (byte) damage : data), true); type = Bukkit.getUnsafe().fromLegacy(new MaterialData(type, data == null ? (byte) damage : data), true);
} }
} }
- this.type = type; - this.type = type;
- this.amount = amount; - this.amount = amount;
+ this.craftDelegate = ItemStack.of(type, amount); // Paper - create delegate + // Paper start - create delegate
+ this.craftDelegate = type == Material.AIR ? ItemStack.empty() : ItemStack.of(type, amount);
+ // Paper end - create delegate
if (damage != 0) { if (damage != 0) {
setDurability(damage); setDurability(damage);
} }
@@ -109,17 +142,16 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -109,17 +144,16 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @param stack the stack to copy * @param stack the stack to copy
* @throws IllegalArgumentException if the specified stack is null or * @throws IllegalArgumentException if the specified stack is null or
* returns an item meta not created by the item factory * returns an item meta not created by the item factory
@ -116,7 +118,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -127,10 +159,9 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -127,10 +161,9 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* *
* @return Type of the items in this stack * @return Type of the items in this stack
*/ */
@ -128,7 +130,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -153,19 +184,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -153,19 +186,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* Using this method in ItemStacks passed in events will result in undefined behavior. * Using this method in ItemStacks passed in events will result in undefined behavior.
* @see ItemStack#withType(Material) * @see ItemStack#withType(Material)
*/ */
@ -149,7 +151,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
// Paper start // Paper start
/** /**
@@ -177,12 +199,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -177,12 +201,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
@NotNull @NotNull
@org.jetbrains.annotations.Contract(value = "_ -> new", pure = true) @org.jetbrains.annotations.Contract(value = "_ -> new", pure = true)
public ItemStack withType(@NotNull Material type) { public ItemStack withType(@NotNull Material type) {
@ -163,7 +165,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
// Paper end // Paper end
@@ -192,7 +209,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -192,7 +211,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @return Amount of items in this stack * @return Amount of items in this stack
*/ */
public int getAmount() { public int getAmount() {
@ -172,7 +174,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -201,7 +218,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -201,7 +220,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @param amount New amount of items in this stack * @param amount New amount of items in this stack
*/ */
public void setAmount(int amount) { public void setAmount(int amount) {
@ -181,7 +183,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -254,11 +271,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -254,11 +273,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*/ */
@Deprecated @Deprecated
public void setDurability(final short durability) { public void setDurability(final short durability) {
@ -194,7 +196,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -269,8 +282,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -269,8 +284,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*/ */
@Deprecated @Deprecated
public short getDurability() { public short getDurability() {
@ -204,7 +206,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -282,17 +294,12 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -282,17 +296,12 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* *
* @return The maximum you can stack this item to. * @return The maximum you can stack this item to.
*/ */
@ -224,7 +226,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
@Override @Override
@@ -306,17 +313,8 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -306,17 +315,8 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
} }
@Override @Override
@ -243,7 +245,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -326,49 +324,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -326,49 +326,19 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @param stack the item stack to compare to * @param stack the item stack to compare to
* @return true if the two stacks are equal, ignoring the amount * @return true if the two stacks are equal, ignoring the amount
*/ */
@ -296,7 +298,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -378,7 +346,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -378,7 +348,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @return True if this has the given enchantment * @return True if this has the given enchantment
*/ */
public boolean containsEnchantment(@NotNull Enchantment ench) { public boolean containsEnchantment(@NotNull Enchantment ench) {
@ -305,7 +307,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -388,7 +356,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -388,7 +358,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @return Level of the enchantment, or 0 * @return Level of the enchantment, or 0
*/ */
public int getEnchantmentLevel(@NotNull Enchantment ench) { public int getEnchantmentLevel(@NotNull Enchantment ench) {
@ -314,7 +316,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -398,7 +366,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -398,7 +368,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*/ */
@NotNull @NotNull
public Map<Enchantment, Integer> getEnchantments() { public Map<Enchantment, Integer> getEnchantments() {
@ -323,7 +325,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -474,10 +442,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -474,10 +444,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @param level Level of the enchantment * @param level Level of the enchantment
*/ */
public void addUnsafeEnchantment(@NotNull Enchantment ench, int level) { public void addUnsafeEnchantment(@NotNull Enchantment ench, int level) {
@ -335,7 +337,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -488,23 +453,14 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -488,23 +455,14 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @return Previous level, or 0 * @return Previous level, or 0
*/ */
public int removeEnchantment(@NotNull Enchantment ench) { public int removeEnchantment(@NotNull Enchantment ench) {
@ -361,7 +363,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
@Override @Override
@@ -660,7 +616,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -660,7 +618,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*/ */
@UndefinedNullability // Paper @UndefinedNullability // Paper
public ItemMeta getItemMeta() { public ItemMeta getItemMeta() {
@ -370,7 +372,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -669,7 +625,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -669,7 +627,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* @return Returns true if some meta data has been set for this item * @return Returns true if some meta data has been set for this item
*/ */
public boolean hasItemMeta() { public boolean hasItemMeta() {
@ -379,7 +381,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -682,28 +638,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -682,28 +640,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* the {@link ItemFactory} * the {@link ItemFactory}
*/ */
public boolean setItemMeta(@Nullable ItemMeta itemMeta) { public boolean setItemMeta(@Nullable ItemMeta itemMeta) {
@ -410,7 +412,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
@Override @Override
@NotNull @NotNull
@@ -807,11 +745,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -807,11 +747,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
} }
public int getMaxItemUseDuration(@NotNull final org.bukkit.entity.LivingEntity entity) { public int getMaxItemUseDuration(@NotNull final org.bukkit.entity.LivingEntity entity) {
@ -423,7 +425,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -1061,7 +995,8 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -1061,7 +997,8 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
*/ */
@NotNull @NotNull
public static ItemStack empty() { public static ItemStack empty() {
@ -433,7 +435,7 @@ index 7f5633e7689b82b937d5b985c3e6ae15dc94a20f..da91938ff941bb5903dcbd430c68c598
} }
/** /**
@@ -1069,7 +1004,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat @@ -1069,7 +1006,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
* it is either air or the stack has a size of 0. * it is either air or the stack has a size of 0.
*/ */
public boolean isEmpty() { public boolean isEmpty() {

Datei anzeigen

@ -207,7 +207,7 @@ index 0000000000000000000000000000000000000000..9789916f949374bfb50da535b0761807
+ @NonNull PersistentDataContainerView getPersistentDataContainer(); + @NonNull PersistentDataContainerView getPersistentDataContainer();
+} +}
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 da91938ff941bb5903dcbd430c68c5980c01b57b..f603b5b6ba80af919f415322583a8345a5b1358a 100644 index 2b414b01f80f9c683381c92deb1fca2ec15be2c7..8bbd98ea729755e7666403b96f277fd419560951 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
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable; @@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable;