From 6e9a544073d11d6a2d233a0276eb44872106222e Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Wed, 20 Nov 2019 20:16:40 -0800 Subject: [PATCH] item script: always track the script in context --- .../java/com/denizenscript/denizen/objects/PlayerTag.java | 2 +- .../scripts/containers/core/ItemScriptContainer.java | 4 ++++ .../com/denizenscript/denizen/tags/BukkitTagContext.java | 8 ++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java b/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java index 1c40114fe0..3bc527c181 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java +++ b/plugin/src/main/java/com/denizenscript/denizen/objects/PlayerTag.java @@ -3177,7 +3177,7 @@ else if (split.length > 1 && new ElementTag(split[1]).isBoolean()) { // <--[mechanism] // @object PlayerTag // @name fake_equipment - // @input EntityTag(|Element|dItem) + // @input EntityTag(|Element|ItemTag) // @description // Shows the player fake equipment on the specified living entity, which has // no real non-visual effects, in the form Entity|Slot|Item, where the slot diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/ItemScriptContainer.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/ItemScriptContainer.java index 79a03b9647..0894527926 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/ItemScriptContainer.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/containers/core/ItemScriptContainer.java @@ -174,6 +174,10 @@ public ItemTag getItemFrom(BukkitTagContext context) { if (context == null) { context = new BukkitTagContext(null, null, new ScriptTag(this)); } + else { + context = new BukkitTagContext(context); + context.script = new ScriptTag(this); + } // Try to use this script to make an item. ItemTag stack = null; isProcessing = true; diff --git a/plugin/src/main/java/com/denizenscript/denizen/tags/BukkitTagContext.java b/plugin/src/main/java/com/denizenscript/denizen/tags/BukkitTagContext.java index 2df201e8ef..01da0b2466 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/tags/BukkitTagContext.java +++ b/plugin/src/main/java/com/denizenscript/denizen/tags/BukkitTagContext.java @@ -9,8 +9,12 @@ import com.denizenscript.denizencore.tags.TagContext; public class BukkitTagContext extends TagContext { - public final PlayerTag player; - public final NPCTag npc; + public PlayerTag player; + public NPCTag npc; + + public BukkitTagContext(BukkitTagContext copyFrom) { + this(copyFrom.player, copyFrom.npc, copyFrom.instant, copyFrom.entry, copyFrom.debug, copyFrom.script); + } public BukkitTagContext(PlayerTag player, NPCTag npc, ScriptTag script) { super(false, script == null || script.getContainer().shouldDebug(), null, script);