mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-04 10:11:29 +01:00
b06cb423cb
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 Bukkit Changes: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes:77fd87e4
SPIGOT-2304: Implement LootGenerateEventa1a705ee
SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent41712edd
SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
59 lines
No EOL
2.3 KiB
Diff
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 acc2a57ff2..47827fbf1b 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 {
|
|
|
|
@Override
|
|
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) {
|
|
--
|