geforkt von Mirrors/Paper
70ce6ce831
This makes it easier for downstream projects (forks) to replace the version fetching system with their own. It is as simple as implementing an interface and overriding the default implementation of org.bukkit.UnsafeValues#getVersionFetcher() It also makes it easier for us to organize things like the version history feature. Lastly I have updated the paper implementation to check against the site API rather than against jenkins.
62 Zeilen
2.3 KiB
Diff
62 Zeilen
2.3 KiB
Diff
From 06b562c471e8a68cd53db34d91f007e7dbe0a3d0 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 deb9de366..f05f4c1da 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java
|
|
@@ -224,10 +224,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 = getStorageContents();
|
|
+ //ItemStack[] inventory = getStorageContents(); // Paper - let param deal
|
|
for (int i = 0; i < inventory.length; i++) {
|
|
if (inventory[i] == null) continue;
|
|
|
|
@@ -345,6 +351,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>();
|
|
|
|
@@ -355,7 +372,10 @@ 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) {
|
|
--
|
|
2.21.0
|
|
|