Fixed dupe bug in ItemMatcher and made hasRoom not modify the inventory contents.
This commit is contained in:
@@ -109,17 +109,20 @@ public class InventoryUtils {
|
||||
if (itemStack.getAmount() <= 0)
|
||||
return true;
|
||||
|
||||
int overflow = addItem(inventory, itemStack);
|
||||
int remaining = itemStack.getAmount();
|
||||
|
||||
//revert back if inventory cannot hold all of the items
|
||||
if (overflow > 0) {
|
||||
ItemStack revert = itemStack.clone();
|
||||
revert.setAmount(revert.getAmount() - overflow);
|
||||
InventoryUtils.removeItem(inventory, revert);
|
||||
return false;
|
||||
for (ItemStack stack : inventory.getStorageContents()) {
|
||||
if (stack == null || stack.getType().isAir()) {
|
||||
remaining -= itemStack.getMaxStackSize();
|
||||
} else if (stack.isSimilar(itemStack)) {
|
||||
remaining -= stack.getMaxStackSize() - stack.getAmount();
|
||||
}
|
||||
removeItem(inventory, itemStack);
|
||||
|
||||
if (remaining <= 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -266,8 +266,8 @@ public class ItemMatcher {
|
||||
return false; // not the same color
|
||||
|
||||
// Do we need all of the above checks inside the shulker?
|
||||
if (Arrays.equals(shulkerBox1.getInventory().getContents(), shulkerBox2.getInventory().getContents()))
|
||||
return true; // same content
|
||||
// same content if true
|
||||
return Arrays.equals(shulkerBox1.getInventory().getContents(), shulkerBox2.getInventory().getContents());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -295,7 +295,7 @@ public class ItemMatcher {
|
||||
}
|
||||
|
||||
if (item1 == null || item2 == null) {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!item1.getType().equals(item2.getType())) {
|
||||
@@ -310,7 +310,7 @@ public class ItemMatcher {
|
||||
return metaMatches(item1, item2);
|
||||
}
|
||||
|
||||
return !item1.hasItemMeta() && !item1.hasItemMeta();
|
||||
return !item1.hasItemMeta() && !item2.hasItemMeta();
|
||||
}
|
||||
|
||||
protected static boolean metaMatches(ItemStack item1, ItemStack item2) {
|
||||
|
||||
Reference in New Issue
Block a user