summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java2
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java13
2 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
index 94c4a12e..e6958b0f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
@@ -27,7 +27,7 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
public org.bukkit.inventory.ItemStack getItem() {
ItemStack i = getHandle().i();
- return i == null ? new org.bukkit.inventory.ItemStack(Material.AIR) : new CraftItemStack(i);
+ return i == null ? new org.bukkit.inventory.ItemStack(Material.AIR) : CraftItemStack.asBukkitStack(i);
}
public Rotation getRotation() {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
index 9f7f0045..5d5ae069 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -169,6 +169,10 @@ public class CraftItemStack extends ItemStack {
@Override
public Map<Enchantment, Integer> getEnchantments() {
+ return getEnchantments(item);
+ }
+
+ public static Map<Enchantment, Integer> getEnchantments(net.minecraft.server.ItemStack item) {
Map<Enchantment, Integer> result = new HashMap<Enchantment, Integer>();
NBTTagList list = (item == null) ? null : item.getEnchantments();
@@ -233,4 +237,13 @@ public class CraftItemStack extends ItemStack {
}
return new CraftItemStack(original).getHandle();
}
+
+ /**
+ * Copies the NMS stack to return as a strictly-Bukkit stack
+ */
+ public static ItemStack asBukkitStack(net.minecraft.server.ItemStack original) {
+ ItemStack stack = new ItemStack(original.id, original.count, (short) original.getData());
+ stack.addUnsafeEnchantments(getEnchantments(original));
+ return stack;
+ }
}