SPIGOT-1567: Rework setItems to set slots correctly regardless of array reference.

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot
2016-03-01 19:59:52 +11:00
parent 99001e5c52
commit bfaa5525f9

View File

@@ -61,17 +61,15 @@ public class CraftInventory implements Inventory {
} }
public void setContents(ItemStack[] items) { public void setContents(ItemStack[] items) {
if (getInventory().getContents().length < items.length) { if (getSize() < items.length) {
throw new IllegalArgumentException("Invalid inventory size; expected " + getInventory().getContents().length + " or less"); throw new IllegalArgumentException("Invalid inventory size; expected " + getSize() + " or less");
} }
net.minecraft.server.ItemStack[] mcItems = getInventory().getContents(); for (int i = 0; i < getSize(); i++) {
for (int i = 0; i < mcItems.length; i++) {
if (i >= items.length) { if (i >= items.length) {
mcItems[i] = null; setItem(i, null);
} else { } else {
mcItems[i] = CraftItemStack.asNMSCopy(items[i]); setItem(i, items[i]);
} }
} }
} }