diff options
Diffstat (limited to 'patches/api/0190-Add-item-slot-convenience-methods.patch')
-rw-r--r-- | patches/api/0190-Add-item-slot-convenience-methods.patch | 330 |
1 files changed, 330 insertions, 0 deletions
diff --git a/patches/api/0190-Add-item-slot-convenience-methods.patch b/patches/api/0190-Add-item-slot-convenience-methods.patch new file mode 100644 index 0000000000..20638212e8 --- /dev/null +++ b/patches/api/0190-Add-item-slot-convenience-methods.patch @@ -0,0 +1,330 @@ +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 + +Co-authored-by: Janet Blackquill <[email protected]> + +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/CartographyInventory.java b/src/main/java/org/bukkit/inventory/CartographyInventory.java +index 29c9b2682b92433f468d434d25d3c2495b5ac91b..d040ecea3a086711acbf5a852def090ba6c51fae 100644 +--- a/src/main/java/org/bukkit/inventory/CartographyInventory.java ++++ b/src/main/java/org/bukkit/inventory/CartographyInventory.java +@@ -3,4 +3,25 @@ package org.bukkit.inventory; + /** + * Interface to the inventory of a Cartography table. + */ +-public interface CartographyInventory extends Inventory { } ++public interface CartographyInventory extends Inventory { ++ // Paper begin - add getResult/setResult to CartographyInventory ++ /** ++ * Check what item is in the result slot of this smithing table. ++ * ++ * @return the result item ++ */ ++ @org.jetbrains.annotations.Nullable ++ default ItemStack getResult() { ++ return this.getItem(2); // net.minecraft.world.inventory.CartographyTableMenu.RESULT_SLOT ++ } ++ ++ /** ++ * Set the item in the result slot of the smithing table ++ * ++ * @param newResult the new result item ++ */ ++ default void setResult(final @org.jetbrains.annotations.Nullable ItemStack newResult) { ++ this.setItem(2, newResult); // net.minecraft.world.inventory.CartographyTableMenu.RESULT_SLOT ++ } ++ // Paper end - add getResult/setResult to CartographyInventory ++} +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..5ed72b7305428f6be98a86fa9aa174d1b8ad4c17 100644 +--- a/src/main/java/org/bukkit/inventory/SmithingInventory.java ++++ b/src/main/java/org/bukkit/inventory/SmithingInventory.java +@@ -30,4 +30,59 @@ public interface SmithingInventory extends Inventory { + */ + @Nullable + Recipe getRecipe(); ++ ++ // Paper start ++ /** ++ * Gets the input template (first slot). ++ * ++ * @return input template item ++ */ ++ default @Nullable ItemStack getInputTemplate() { ++ return this.getItem(0); ++ } ++ ++ /** ++ * Sets the input template (first slot). ++ * ++ * @param itemStack item to set ++ */ ++ default void setInputTemplate(@Nullable ItemStack itemStack) { ++ this.setItem(0, itemStack); ++ } ++ /** ++ * Gets the input equipment (second slot). ++ * ++ * @return input equipment item ++ */ ++ default @Nullable ItemStack getInputEquipment() { ++ return this.getItem(1); ++ } ++ ++ /** ++ * Sets the input equipment (second slot). ++ * ++ * @param itemStack item to set ++ */ ++ default void setInputEquipment(@Nullable ItemStack itemStack) { ++ this.setItem(1, itemStack); ++ } ++ ++ /** ++ * Gets the input mineral (third slot). ++ * ++ * @return input mineral item ++ */ ++ default @Nullable ItemStack getInputMineral() { ++ return this.getItem(2); ++ } ++ ++ /** ++ * Sets the input mineral (third slot). ++ * ++ * @param itemStack item to set ++ */ ++ default void setInputMineral(@Nullable ItemStack itemStack) { ++ this.setItem(2, 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 ++} |