diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java index 69f81ca18d..808860edd9 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java @@ -117,8 +117,8 @@ public final class ItemStack { } if (nbttagcompound.hasKey("tag")) { - // CraftBukkit - clear name from compound and make defensive copy as this data may be coming from the save thread - this.tag = (NBTTagCompound) nbttagcompound.getCompound("tag").clone().setName(""); + // CraftBukkit - make defensive copy as this data may be coming from the save thread + this.tag = (NBTTagCompound) nbttagcompound.getCompound("tag").clone(); } } @@ -334,6 +334,11 @@ public final class ItemStack { } public void setTag(NBTTagCompound nbttagcompound) { + // CraftBukkit start - Set compound name to "tag," remove discrepancy + if (nbttagcompound != null) { + nbttagcompound.setName("tag"); + } + // CraftBukkit end this.tag = nbttagcompound; } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java index c70d41bd63..51d5beb77b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -191,10 +191,11 @@ public final class CraftItemStack extends ItemStack { if (item == null) { return false; } - if (item.tag != null) { - return true; + + if (item.tag == null) { + item.setTag(new NBTTagCompound("tag")); } - item.tag = new NBTTagCompound(); + return true; } @@ -350,7 +351,7 @@ public final class CraftItemStack extends ItemStack { return false; } - NBTTagCompound tag = new NBTTagCompound(); + NBTTagCompound tag = new NBTTagCompound("tag"); item.setTag(tag); ((CraftMetaItem) itemMeta).applyToItem(tag);