geforkt von Mirrors/Paper
c943a108a9
Upstream has released updates that appear 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: 2dbec584 SPIGOT-6570: Missing InventoryType: COMPOSTER e9ce88b9 SPIGOT-6562: Add more specific sculk sensor event CraftBukkit Changes: 9122f5a6 #869: Fix BossBar setColor and setStyle updates 96a15d7a Incrase outdated build delay ded19075 SPIGOT-6570: Missing InventoryType: COMPOSTER d7ef1e91 SPIGOT-6558: Attempt to improve SkullMeta e7a63287 SPIGOT-6562: Add more specific sculk sensor event Spigot Changes: 101ebb63 SPIGOT-6573: Berry Bushes deal damage when not moving
59 Zeilen
2.4 KiB
Diff
59 Zeilen
2.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.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 d76d70e7031a643f697a8ec13471450de2bca705..6ca8e76d1569f3f631275fea187e7110f09fc69e 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
|
|
@@ -223,10 +223,16 @@ 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 = this.getStorageContents();
|
|
+ // ItemStack[] inventory = this.getStorageContents(); // Paper - let param deal
|
|
for (int i = 0; i < inventory.length; i++) {
|
|
if (inventory[i] == null) continue;
|
|
|
|
@@ -349,6 +355,17 @@ 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>();
|
|
|
|
@@ -359,7 +376,10 @@ public class CraftInventory implements Inventory {
|
|
int toDelete = item.getAmount();
|
|
|
|
while (true) {
|
|
- int first = this.first(item, false);
|
|
+ // Paper start - Allow searching entire contents
|
|
+ ItemStack[] toSearch = searchEntire ? getContents() : getStorageContents();
|
|
+ int first = this.first(item, false, toSearch);
|
|
+ // Paper end
|
|
|
|
// Drat! we don't have this type in the inventory
|
|
if (first == -1) {
|