From f27427ad196d096e2694446e47244908444d977d Mon Sep 17 00:00:00 2001 From: Celtic Minstrel Date: Tue, 13 Mar 2012 20:50:36 -0400 Subject: Fix some improper item cloning instances that would have dropped enchantments --- src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java | 4 ++-- src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java | 2 +- .../java/org/bukkit/craftbukkit/inventory/CraftInventoryCrafting.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java index a033f1e5..41fde2ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -68,8 +68,8 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { } public void setItemOnCursor(ItemStack item) { - CraftItemStack stack = new CraftItemStack(item.getType(), item.getAmount(), item.getDurability()); - getHandle().inventory.setCarried(stack.getType() == Material.AIR ? null : stack.getHandle()); + CraftItemStack stack = new CraftItemStack(item); + getHandle().inventory.setCarried(stack.getHandle()); if (this instanceof CraftPlayer) { ((EntityPlayer) getHandle()).broadcastCarriedItem(); // Send set slot for cursor } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java index 79731c50..d64df143 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java @@ -266,7 +266,7 @@ public class CraftInventory implements Inventory { } else { // More than a single stack! if (item.getAmount() > getMaxItemStack()) { - CraftItemStack stack = new CraftItemStack(item.getTypeId(), getMaxItemStack(), item.getDurability()); + CraftItemStack stack = new CraftItemStack(item); stack.addUnsafeEnchantments(item.getEnchantments()); setItem(firstFree, stack); item.setAmount(item.getAmount() - getMaxItemStack()); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCrafting.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCrafting.java index cdb56ffc..6e20363c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCrafting.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryCrafting.java @@ -114,7 +114,7 @@ public class CraftInventoryCrafting extends CraftInventory implements CraftingIn if (item == null || item.getTypeId() <= 0) { mcItems[i] = null; } else { - mcItems[i] = new net.minecraft.server.ItemStack( item.getTypeId(), item.getAmount(), item.getDurability()); + mcItems[i] = CraftItemStack.createNMSItemStack(item); } } else { mcItems[i] = null; -- cgit v1.2.3