diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java index a96b1b8317..173e265897 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java @@ -41,8 +41,28 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { return items; } + public void setContents(ItemStack[] items) { + if (getInventory().getContents().length != items.length) { + throw new IllegalArgumentException("Invalid inventory size; expected " + + getInventory().getContents().length); + } + + net.minecraft.server.ItemStack[] mcItems = getInventory().getContents(); + + for (int i = 0; i < items.length; i++ ) { + ItemStack item = items[i]; + if (item == null) { + mcItems[i] = null; + } else { + mcItems[i] = new net.minecraft.server.ItemStack( + item.getTypeId(), item.getAmount(), item.getDamage()); + } + } + } + public void setItem(int index, ItemStack item) { - getInventory().a( index, new net.minecraft.server.ItemStack( item.getTypeId(), item.getAmount(), 0)); + getInventory().a(index, new net.minecraft.server.ItemStack( + item.getTypeId(), item.getAmount(), item.getDamage())); } public boolean contains(int materialId) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java index 17aa929651..a08fa55d14 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -7,7 +7,8 @@ public class CraftItemStack extends ItemStack { protected net.minecraft.server.ItemStack item; public CraftItemStack(net.minecraft.server.ItemStack item) { - super(item != null ? item.c : 0, item != null ? item.a : 0); + super(item != null ? item.c : 0, item != null ? item.a : 0, + (byte)(item != null ? item.d : 0)); this.item = item; }