Paper/patches/api/0428-Allow-proper-checking-of-empty-item-stacks.patch
Riley Park f17519338b
Expose server build information (#10729)
* Expose server build information

* squash patches

* final tweaks

---------

Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: masmc05 <masmc05@gmail.com>
2024-05-15 17:06:59 -07:00

37 lines
1.5 KiB
Diff

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
index ee5d2a30f634ccbe6f2cc2f82f9e56783939f5dd..e4dc17ec23d48591ff5742af5d23aa62bd9bfdbc 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -1007,5 +1007,24 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
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
}