From 44ae0531e72871775be20bdc557e1933cc2a71dd Mon Sep 17 00:00:00 2001
From: sk89q <the.sk89q@gmail.com>
Date: Sat, 15 Jan 2011 14:56:35 -0800
Subject: [PATCH] Added CraftInventory.setContents(); made
 CraftInventory.setItem(), CraftInventory.getItem(), and CraftItemStack()
 damage-aware.

---
 .../craftbukkit/inventory/CraftInventory.java | 22 ++++++++++++++++++-
 .../craftbukkit/inventory/CraftItemStack.java |  3 ++-
 2 files changed, 23 insertions(+), 2 deletions(-)

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;
     }