diff options
author | Celtic Minstrel <celtic.minstrel.ca@some.place> | 2012-03-13 20:50:36 -0400 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-03-15 21:47:37 -0400 |
commit | f27427ad196d096e2694446e47244908444d977d (patch) | |
tree | 4e631042c1dfe26c2985a802753ebd851a34237c | |
parent | 77ceb0002cf2c36d5177f1edeacc277cae2b956e (diff) | |
download | craftbukkit-f27427ad196d096e2694446e47244908444d977d.tar craftbukkit-f27427ad196d096e2694446e47244908444d977d.tar.gz craftbukkit-f27427ad196d096e2694446e47244908444d977d.tar.lz craftbukkit-f27427ad196d096e2694446e47244908444d977d.tar.xz craftbukkit-f27427ad196d096e2694446e47244908444d977d.zip |
Fix some improper item cloning instances that would have dropped enchantments
3 files changed, 4 insertions, 4 deletions
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; |