PaperMC/Spigot-Server-Patches/Inventory-removeItemAnySlot.patch
Zach Brown 84c81146c1 Make scan-for-legacy-ender-dragon config work again
Portion of diff was dropped in the mappings update commit.

Also remove the option to remove invalid statistics. The server will
automatically do this now as of... 1.13?, our option wasn't even doing anything.
2018-12-14 20:17:27 -05:00

59 lines
No EOL
2.3 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
Date: Tue, 28 Aug 2018 23:04:15 -0400
Subject: [PATCH] Inventory#removeItemAnySlot
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
index dd7b3d766..01af98293 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
@@ -0,0 +0,0 @@ public class CraftInventory implements Inventory {
}
private int first(ItemStack item, boolean withAmount) {
+ // Paper start
+ return first(item, withAmount, getStorageContents());
+ }
+
+ private int first(ItemStack item, boolean withAmount, ItemStack[] inventory) {
+ // Paper end
if (item == null) {
return -1;
}
- ItemStack[] inventory = getStorageContents();
+ //ItemStack[] inventory = getStorageContents(); // Paper - let param deal
for (int i = 0; i < inventory.length; i++) {
if (inventory[i] == null) continue;
@@ -0,0 +0,0 @@ public class CraftInventory implements Inventory {
}
public HashMap<Integer, ItemStack> removeItem(ItemStack... items) {
+ // Paper start
+ return removeItem(false, items);
+ }
+
+ @Override
+ public HashMap<Integer, ItemStack> removeItemAnySlot(ItemStack... items) {
+ return removeItem(true, items);
+ }
+
+ private HashMap<Integer, ItemStack> removeItem(boolean searchEntire, ItemStack... items) {
+ // Paper end
Validate.notNull(items, "Items cannot be null");
HashMap<Integer, ItemStack> leftover = new HashMap<Integer, ItemStack>();
@@ -0,0 +0,0 @@ public class CraftInventory implements Inventory {
int toDelete = item.getAmount();
while (true) {
- int first = first(item, false);
+ // Paper start - Allow searching entire contents
+ ItemStack[] toSearch = searchEntire ? getContents() : getStorageContents();
+ int first = first(item, false, toSearch);
+ // Paper end
// Drat! we don't have this type in the inventory
if (first == -1) {
--