diff --git a/src/main/java/net/aufdemrand/denizen/objects/dInventory.java b/src/main/java/net/aufdemrand/denizen/objects/dInventory.java index 3a7a9fab69..dbc6053737 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dInventory.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dInventory.java @@ -392,7 +392,8 @@ public boolean removeItem(dItem item, int amount) { is = is.clone(); int count = is.getAmount(); is.setAmount(1); - String newItem = CoreUtilities.toLowerCase(new dItem(is).getFullString()); + // Note: this double-parsing is intentional, as part of a hotfix for a larger issue + String newItem = CoreUtilities.toLowerCase(dItem.valueOf(new dItem(is).getFullString()).getFullString()); if (myItem.equals(newItem)) { if (count <= amount) { inventory.setItem(i, null); diff --git a/src/main/java/net/aufdemrand/denizen/objects/dItem.java b/src/main/java/net/aufdemrand/denizen/objects/dItem.java index 73df2892b4..fa963b868e 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/dItem.java +++ b/src/main/java/net/aufdemrand/denizen/objects/dItem.java @@ -474,8 +474,10 @@ else if (isItemscript()) { } // Else, return the material name - return "i@" + dMaterial.getMaterialFrom(item.getType(), - item.getData().getData()).identify().replace("m@", "") + PropertyParser.getPropertiesString(this); + if (item.getDurability() >= 16 || item.getDurability() < 0) { + return "i@" + getMaterial().realName() + "," + item.getDurability() + PropertyParser.getPropertiesString(this); + } + return "i@" + getMaterial().identify().replace("m@", "") + PropertyParser.getPropertiesString(this); } @@ -507,7 +509,7 @@ public String identifyMaterial() { } public String getFullString() { - return "i@" + (isItemscript() ? getScriptName(): getMaterial().name()) + "," + item.getDurability() + PropertyParser.getPropertiesString(this); + return "i@" + (isItemscript() ? getScriptName(): getMaterial().realName()) + "," + item.getDurability() + PropertyParser.getPropertiesString(this); } diff --git a/src/main/java/net/aufdemrand/denizen/objects/properties/item/ItemPotion.java b/src/main/java/net/aufdemrand/denizen/objects/properties/item/ItemPotion.java index a6b6320287..3cd31f26d7 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/properties/item/ItemPotion.java +++ b/src/main/java/net/aufdemrand/denizen/objects/properties/item/ItemPotion.java @@ -208,6 +208,7 @@ public void adjust(Mechanism mechanism) { if (!pot.getType().isInstant()) pot.setHasExtendedDuration(data2.asBoolean()); pot.setSplash(data3.asBoolean()); + item.setDurability((short)0); pot.apply(item.getItemStack()); } }