aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0197-Add-item-slot-convenience-methods.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0197-Add-item-slot-convenience-methods.patch')
-rw-r--r--patches/api/0197-Add-item-slot-convenience-methods.patch283
1 files changed, 283 insertions, 0 deletions
diff --git a/patches/api/0197-Add-item-slot-convenience-methods.patch b/patches/api/0197-Add-item-slot-convenience-methods.patch
new file mode 100644
index 0000000000..abad4883ed
--- /dev/null
+++ b/patches/api/0197-Add-item-slot-convenience-methods.patch
@@ -0,0 +1,283 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Nassim Jahnke <[email protected]>
+Date: Sat, 25 Apr 2020 23:31:28 +0200
+Subject: [PATCH] Add item slot convenience methods
+
+
+diff --git a/src/main/java/org/bukkit/inventory/AnvilInventory.java b/src/main/java/org/bukkit/inventory/AnvilInventory.java
+index 52519cd877017704b53d36088d4d4c28f8f27397..c60be4fd24c7fdf65251dd6169e5e1ac3b588d95 100644
+--- a/src/main/java/org/bukkit/inventory/AnvilInventory.java
++++ b/src/main/java/org/bukkit/inventory/AnvilInventory.java
+@@ -63,4 +63,64 @@ public interface AnvilInventory extends Inventory {
+ * @param levels the maximum experience cost
+ */
+ void setMaximumRepairCost(int levels);
++
++ // Paper start
++ /**
++ * Gets the item in the left input slot.
++ *
++ * @return item in the first slot
++ */
++ @Nullable
++ default ItemStack getFirstItem() {
++ return getItem(0);
++ }
++
++ /**
++ * Sets the item in the left input slot.
++ *
++ * @param firstItem item to set
++ */
++ default void setFirstItem(@Nullable ItemStack firstItem) {
++ setItem(0, firstItem);
++ }
++
++ /**
++ * Gets the item in the right input slot.
++ *
++ * @return item in the second slot
++ */
++ @Nullable
++ default ItemStack getSecondItem() {
++ return getItem(1);
++ }
++
++ /**
++ * Sets the item in the right input slot.
++ *
++ * @param secondItem item to set
++ */
++ default void setSecondItem(@Nullable ItemStack secondItem) {
++ setItem(1, secondItem);
++ }
++
++ /**
++ * Gets the item in the result slot.
++ *
++ * @return item in the result slot
++ */
++ @Nullable
++ default ItemStack getResult() {
++ return getItem(2);
++ }
++
++ /**
++ * Sets the item in the result slot.
++ * Note that the client might not be able to take out the item if it does not match the input items.
++ *
++ * @param result item to set
++ */
++ default void setResult(@Nullable ItemStack result) {
++ setItem(2, result);
++ }
++ // Paper end
+ }
+diff --git a/src/main/java/org/bukkit/inventory/GrindstoneInventory.java b/src/main/java/org/bukkit/inventory/GrindstoneInventory.java
+index 9048892c8768c6b4d6cea03da73339f13bfbe82e..1c750108f55a0a31ad23433b333e0ea486a63ff2 100644
+--- a/src/main/java/org/bukkit/inventory/GrindstoneInventory.java
++++ b/src/main/java/org/bukkit/inventory/GrindstoneInventory.java
+@@ -1,6 +1,68 @@
+ package org.bukkit.inventory;
+
++import org.jetbrains.annotations.Nullable; // Paper
++
+ /**
+ * Interface to the inventory of a Grindstone.
+ */
+-public interface GrindstoneInventory extends Inventory { }
++public interface GrindstoneInventory extends Inventory {
++
++ // Paper start
++ /**
++ * Gets the upper input item.
++ *
++ * @return upper input item
++ */
++ @Nullable
++ default ItemStack getUpperItem() {
++ return getItem(0);
++ }
++
++ /**
++ * Sets the upper input item.
++ *
++ * @param upperItem item to set
++ */
++ default void setUpperItem(@Nullable ItemStack upperItem) {
++ setItem(0, upperItem);
++ }
++
++ /**
++ * Gets the lower input item.
++ *
++ * @return lower input item
++ */
++ @Nullable
++ default ItemStack getLowerItem() {
++ return getItem(1);
++ }
++
++ /**
++ * Sets the lower input item.
++ *
++ * @param lowerItem item to set
++ */
++ default void setLowerItem(@Nullable ItemStack lowerItem) {
++ setItem(1, lowerItem);
++ }
++
++ /**
++ * Gets the result.
++ *
++ * @return result
++ */
++ @Nullable
++ default ItemStack getResult() {
++ return getItem(2);
++ }
++
++ /**
++ * Sets the result.
++ *
++ * @param result item to set
++ */
++ default void setResult(@Nullable ItemStack result) {
++ setItem(2, result);
++ }
++ // Paper end
++}
+diff --git a/src/main/java/org/bukkit/inventory/LecternInventory.java b/src/main/java/org/bukkit/inventory/LecternInventory.java
+index 4a0c43acc2714e095973eb78536041bb1a179ddc..acf2244f77133df53eb5f862c8e713c85192f13d 100644
+--- a/src/main/java/org/bukkit/inventory/LecternInventory.java
++++ b/src/main/java/org/bukkit/inventory/LecternInventory.java
+@@ -11,4 +11,25 @@ public interface LecternInventory extends Inventory {
+ @Nullable
+ @Override
+ public Lectern getHolder();
++
++ // Paper start
++ /**
++ * Gets the lectern's held book.
++ *
++ * @return book set in the lectern
++ */
++ @Nullable
++ default ItemStack getBook() {
++ return getItem(0);
++ }
++
++ /**
++ * Sets the lectern's held book.
++ *
++ * @param book the new book
++ */
++ default void setBook(@Nullable ItemStack book) {
++ setItem(0, book);
++ }
++ // Paper end
+ }
+diff --git a/src/main/java/org/bukkit/inventory/SmithingInventory.java b/src/main/java/org/bukkit/inventory/SmithingInventory.java
+index 96d526b7b153e56c9a97de42ce3270b6638510e4..a41ca6bd2672db2810dd70c4925b84a4f081af05 100644
+--- a/src/main/java/org/bukkit/inventory/SmithingInventory.java
++++ b/src/main/java/org/bukkit/inventory/SmithingInventory.java
+@@ -30,4 +30,44 @@ public interface SmithingInventory extends Inventory {
+ */
+ @Nullable
+ Recipe getRecipe();
++
++ // Paper start
++ /**
++ * Gets the input equipment (first slot).
++ *
++ * @return input equipment item
++ */
++ @Nullable
++ default ItemStack getInputEquipment() {
++ return getItem(0);
++ }
++
++ /**
++ * Sets the input equipment (first slot).
++ *
++ * @param itemStack item to set
++ */
++ default void setInputEquipment(@Nullable ItemStack itemStack) {
++ setItem(0, itemStack);
++ }
++
++ /**
++ * Gets the input mineral (second slot).
++ *
++ * @return input mineral item
++ */
++ @Nullable
++ default ItemStack getInputMineral() {
++ return getItem(1);
++ }
++
++ /**
++ * Sets the input mineral (second slot).
++ *
++ * @param itemStack item to set
++ */
++ default void setInputMineral(@Nullable ItemStack itemStack) {
++ setItem(1, itemStack);
++ }
++ // Paper end
+ }
+diff --git a/src/main/java/org/bukkit/inventory/StonecutterInventory.java b/src/main/java/org/bukkit/inventory/StonecutterInventory.java
+index dbb034fae3b8bfaf40e6341460e274c21e321a3b..e7a8e7188bf8b9840de56dc80c2b79d64a9389cb 100644
+--- a/src/main/java/org/bukkit/inventory/StonecutterInventory.java
++++ b/src/main/java/org/bukkit/inventory/StonecutterInventory.java
+@@ -1,6 +1,49 @@
+ package org.bukkit.inventory;
+
++import org.jetbrains.annotations.Nullable; // Paper
++
+ /**
+ * Interface to the inventory of a Stonecutter.
+ */
+-public interface StonecutterInventory extends Inventory { }
++public interface StonecutterInventory extends Inventory {
++
++ // Paper start
++ /**
++ * Gets the input item.
++ *
++ * @return input item
++ */
++ @Nullable
++ default ItemStack getInputItem() {
++ return getItem(0);
++ }
++
++ /**
++ * Sets the input item.
++ *
++ * @param itemStack item to set
++ */
++ default void setInputItem(@Nullable ItemStack itemStack) {
++ setItem(0, itemStack);
++ }
++
++ /**
++ * Gets the result item.
++ *
++ * @return result
++ */
++ @Nullable
++ default ItemStack getResult() {
++ return getItem(1);
++ }
++
++ /**
++ * Sets the result item.
++ *
++ * @param itemStack item to set
++ */
++ default void setResult(@Nullable ItemStack itemStack) {
++ setItem(1, itemStack);
++ }
++ // Paper end
++}