summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWesley Wolfe <weswolf@aol.com>2013-07-28 14:15:52 -0500
committerWesley Wolfe <weswolf@aol.com>2013-07-28 14:52:25 -0500
commitb2be908fbb8a4cb9841c9ff6b61b86ca54f2d75b (patch)
treebb9fe5d5a039d9b0c1ca1e549ba22e158710ab59 /src
parent1e7f2ebebde28acf23a122c006fd5ed04c1baaf4 (diff)
downloadcraftbukkit-b2be908fbb8a4cb9841c9ff6b61b86ca54f2d75b.tar
craftbukkit-b2be908fbb8a4cb9841c9ff6b61b86ca54f2d75b.tar.gz
craftbukkit-b2be908fbb8a4cb9841c9ff6b61b86ca54f2d75b.tar.lz
craftbukkit-b2be908fbb8a4cb9841c9ff6b61b86ca54f2d75b.tar.xz
craftbukkit-b2be908fbb8a4cb9841c9ff6b61b86ca54f2d75b.zip
Fix NBT token for attribute names. Addresses BUKKIT-4483
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index c22087d1..41ce3512 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -184,6 +184,8 @@ class CraftMetaItem implements ItemMeta, Repairable {
@Specific(Specific.To.NBT)
static final ItemMetaKey ATTRIBUTES = new ItemMetaKey("AttributeModifiers");
@Specific(Specific.To.NBT)
+ static final ItemMetaKey ATTRIBUTES_IDENTIFIER = new ItemMetaKey("AttributeName");
+ @Specific(Specific.To.NBT)
static final ItemMetaKey ATTRIBUTES_NAME = new ItemMetaKey("Name");
@Specific(Specific.To.NBT)
static final ItemMetaKey ATTRIBUTES_VALUE = new ItemMetaKey("Amount");
@@ -262,7 +264,10 @@ class CraftMetaItem implements ItemMeta, Repairable {
if (!(nbttagcompound.get(ATTRIBUTES_UUID_LOW.NBT) instanceof NBTTagLong)) {
continue;
}
- if (!(nbttagcompound.get(ATTRIBUTES_NAME.NBT) instanceof NBTTagString) || !CraftItemFactory.KNOWN_NBT_ATTRIBUTE_NAMES.contains(nbttagcompound.getString(ATTRIBUTES_NAME.NBT))) {
+ if (!(nbttagcompound.get(ATTRIBUTES_IDENTIFIER.NBT) instanceof NBTTagString) || !CraftItemFactory.KNOWN_NBT_ATTRIBUTE_NAMES.contains(nbttagcompound.getString(ATTRIBUTES_IDENTIFIER.NBT))) {
+ continue;
+ }
+ if (!(nbttagcompound.get(ATTRIBUTES_NAME.NBT) instanceof NBTTagString) || nbttagcompound.getString(ATTRIBUTES_NAME.NBT).isEmpty()) {
continue;
}
if (!(nbttagcompound.get(ATTRIBUTES_VALUE.NBT) instanceof NBTTagDouble)) {
@@ -279,6 +284,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
NBTTagCompound entry = new NBTTagCompound();
entry.set(ATTRIBUTES_UUID_HIGH.NBT, nbttagcompound.get(ATTRIBUTES_UUID_HIGH.NBT));
entry.set(ATTRIBUTES_UUID_LOW.NBT, nbttagcompound.get(ATTRIBUTES_UUID_LOW.NBT));
+ entry.set(ATTRIBUTES_IDENTIFIER.NBT, nbttagcompound.get(ATTRIBUTES_IDENTIFIER.NBT));
entry.set(ATTRIBUTES_NAME.NBT, nbttagcompound.get(ATTRIBUTES_NAME.NBT));
entry.set(ATTRIBUTES_VALUE.NBT, nbttagcompound.get(ATTRIBUTES_VALUE.NBT));
entry.set(ATTRIBUTES_TYPE.NBT, nbttagcompound.get(ATTRIBUTES_TYPE.NBT));