From 3fb2d1bf8a59d81a6b33201de16d0967524d1a96 Mon Sep 17 00:00:00 2001 From: "Alex \"mcmonkey\" Goodwin" Date: Tue, 25 Oct 2022 08:29:05 -0700 Subject: [PATCH] fix edge case of smithing retain with layered item scripts --- .../scripts/containers/core/ItemScriptHelper.java | 15 +++++---------- .../utilities/command/NPCCommandHandler.java | 3 --- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/ItemScriptHelper.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/ItemScriptHelper.java index 9c37c65b88..68894776c4 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/ItemScriptHelper.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/ItemScriptHelper.java @@ -669,21 +669,16 @@ public void onItemSmithing(PrepareSmithingEvent event) { for (String retainable : retain) { switch (retainable) { case "display": - if (!originalMeta.hasDisplayName()) { - newMeta.setDisplayName(null); - } - else { + if (originalMeta.hasDisplayName()) { String originalName = NMSHandler.itemHelper.getDisplayName(new ItemTag(inputItem)); - NMSHandler.itemHelper.setDisplayName(got, originalName); + ItemScriptContainer origScript = getItemScriptContainer(inputItem); + if (origScript == null || !originalName.equals(NMSHandler.itemHelper.getDisplayName(origScript.getItemFrom()))) { + NMSHandler.itemHelper.setDisplayName(got, originalName); + } } newMeta = got.getItemMeta(); break; case "enchantments": - if (newMeta.hasEnchants()) { - for (Enchantment enchant : new ArrayList<>(newMeta.getEnchants().keySet())) { - newMeta.removeEnchant(enchant); - } - } if (originalMeta.hasEnchants()) { for (Map.Entry enchant : originalMeta.getEnchants().entrySet()) { newMeta.addEnchant(enchant.getKey(), enchant.getValue(), true); diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/command/NPCCommandHandler.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/command/NPCCommandHandler.java index 5273702b1a..020ca07808 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/command/NPCCommandHandler.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/command/NPCCommandHandler.java @@ -102,9 +102,6 @@ else if (args.hasFlag('t')) { if (args.hasValueFlag("delay") && args.getFlag("delay").matches("\\d+") && args.getFlagInteger("delay") > 0) { trait.setDelay(args.getFlagInteger("delay")); } - Messaging.sendInfo(sender, npc.getName() + (trait.isPushable() ? " is" : " is not") + " currently pushable" + - (trait.isReturnable() && trait.isPushable() ? " and will return when pushed after '" + trait.getDelay() + "' seconds." : ".")); - return; } else if (args.length() > 2) { Messaging.send(sender, "");