mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-09 06:50:32 +08:00
0976d52bbd
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Please note that this build includes changes to meet upstreams requirements for nullability annotations. While we aim for a level of accuracy, these might not be 100% correct, if there are any issues, please speak to us on discord, or open an issue on the tracker to discuss. Bukkit Changes: 9a6a1de3 Remove nullability annotations from enum constructors 3f0591ea SPIGOT-2540: Add nullability annotations to entire Bukkit API CraftBukkit Changes:8d8475fc
SPIGOT-4666: Force parameter in HumanEntity#sleep8b1588e2
Fix ExplosionPrimeEvent#setFire not working with EnderCrystals39a287b7
Don't ignore newlines in PlayerListHeader/Footer Spigot Changes: cf694d87 Add nullability annotations
49 lines
2.0 KiB
Diff
49 lines
2.0 KiB
Diff
From fa6299812f51c7522de971796540aab08c18866a Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
|
Date: Tue, 28 Aug 2018 23:04:06 -0400
|
|
Subject: [PATCH] Inventory#removeItemAnySlot
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/inventory/Inventory.java b/src/main/java/org/bukkit/inventory/Inventory.java
|
|
index 36e352917..a358e9014 100644
|
|
--- a/src/main/java/org/bukkit/inventory/Inventory.java
|
|
+++ b/src/main/java/org/bukkit/inventory/Inventory.java
|
|
@@ -138,6 +138,34 @@ public interface Inventory extends Iterable<ItemStack> {
|
|
@NotNull
|
|
public HashMap<Integer, ItemStack> removeItem(@NotNull ItemStack... items) throws IllegalArgumentException;
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Searches all possible inventory slots in order to remove the given ItemStacks.
|
|
+ * <p>
|
|
+ * Similar to {@link Inventory#removeItem(ItemStack...)} in behavior, except this
|
|
+ * method will check all possible slots in the inventory, rather than just the main
|
|
+ * storage contents.
|
|
+ * <p>
|
|
+ * It will try to remove 'as much as possible' from the types and amounts
|
|
+ * you give as arguments.
|
|
+ * <p>
|
|
+ * The returned HashMap contains what it couldn't remove, where the key is
|
|
+ * the index of the parameter, and the value is the ItemStack at that
|
|
+ * index of the varargs parameter. If all the given ItemStacks are
|
|
+ * removed, it will return an empty HashMap.
|
|
+ * <p>
|
|
+ * It is known that in some implementations this method will also set the
|
|
+ * inputted argument amount to the number of that item not removed from
|
|
+ * slots.
|
|
+ *
|
|
+ * @param items The ItemStacks to remove
|
|
+ * @return A HashMap containing items that couldn't be removed.
|
|
+ * @throws IllegalArgumentException if items is null
|
|
+ */
|
|
+ @NotNull
|
|
+ public HashMap<Integer, ItemStack> removeItemAnySlot(@NotNull ItemStack... items) throws IllegalArgumentException;
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Returns all ItemStacks from the inventory
|
|
*
|
|
--
|
|
2.21.0
|
|
|