2023-09-16 23:18:09 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Aeltumn <daniel@goossens.ch>
|
|
|
|
Date: Mon, 28 Aug 2023 13:41:09 +0200
|
|
|
|
Subject: [PATCH] Allow proper checking of empty item stacks
|
|
|
|
|
|
|
|
This adds a method to check if an item stack is empty or not. This mirrors vanilla's implementation of the same method.
|
|
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
2024-06-29 10:58:37 +02:00
|
|
|
index 659191a226cae406a14c67cc0992f7026f6188e6..5b918d510b9c8a6f8c6d146e90e1d0ef4a204b5a 100644
|
2023-09-16 23:18:09 +02:00
|
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
2024-06-14 14:11:52 +02:00
|
|
|
@@ -1017,5 +1017,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
2023-09-16 23:18:09 +02:00
|
|
|
public @NotNull ItemStack damage(int amount, @NotNull org.bukkit.entity.LivingEntity livingEntity) {
|
|
|
|
return livingEntity.damageItemStack(this, amount);
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Returns an empty item stack, consists of an air material and a stack size of 0.
|
|
|
|
+ *
|
|
|
|
+ * Any item stack with a material of air or a stack size of 0 is seen
|
|
|
|
+ * as being empty by {@link ItemStack#isEmpty}.
|
|
|
|
+ */
|
|
|
|
+ @NotNull
|
|
|
|
+ public static ItemStack empty() {
|
|
|
|
+ return new ItemStack();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Returns whether this item stack is empty and contains no item. This means
|
|
|
|
+ * it is either air or the stack has a size of 0.
|
|
|
|
+ */
|
|
|
|
+ public boolean isEmpty() {
|
|
|
|
+ return type.isAir() || amount <= 0;
|
|
|
|
+ }
|
|
|
|
// Paper end
|
|
|
|
}
|