From 392549b2322339019fe9dd994a97c27599f08d20 Mon Sep 17 00:00:00 2001 From: Mason Adkins Date: Wed, 6 Mar 2013 22:44:47 -0500 Subject: [PATCH] itemscript supported by item requirement, itemscripts use addUnsafeEnchant --- .../containers/core/ItemScriptContainer.java | 2 +- .../requirements/core/ItemRequirement.java | 20 +++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/ItemScriptContainer.java b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/ItemScriptContainer.java index e9565fccf0..1de11d8dbd 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/containers/core/ItemScriptContainer.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/containers/core/ItemScriptContainer.java @@ -73,7 +73,7 @@ public Item getItemFrom(Player player, dNPC npc) { } // Add enchantment Enchantment ench = Enchantment.getByName(enchantment.toUpperCase()); - stack.addEnchantment(ench, level); + stack.addUnsafeEnchantment(ench, level); } catch (Exception e) { // Invalid enchantment information, let's try the next entry continue; diff --git a/src/main/java/net/aufdemrand/denizen/scripts/requirements/core/ItemRequirement.java b/src/main/java/net/aufdemrand/denizen/scripts/requirements/core/ItemRequirement.java index f01bb0d5d7..86260d7aad 100644 --- a/src/main/java/net/aufdemrand/denizen/scripts/requirements/core/ItemRequirement.java +++ b/src/main/java/net/aufdemrand/denizen/scripts/requirements/core/ItemRequirement.java @@ -2,18 +2,21 @@ import java.util.List; -import org.bukkit.inventory.ItemStack; - import net.aufdemrand.denizen.exceptions.RequirementCheckException; +import net.aufdemrand.denizen.scripts.ScriptRegistry; +import net.aufdemrand.denizen.scripts.containers.core.ItemScriptContainer; import net.aufdemrand.denizen.scripts.requirements.AbstractRequirement; import net.aufdemrand.denizen.scripts.requirements.RequirementsContext; import net.aufdemrand.denizen.utilities.arguments.aH; import net.aufdemrand.denizen.utilities.debugging.dB; +import org.bukkit.inventory.ItemStack; + public class ItemRequirement extends AbstractRequirement { Integer quantity = 1; ItemStack item = null; + ItemScriptContainer itemContainer = null; @Override public boolean check(RequirementsContext context, List args) @@ -25,10 +28,15 @@ public boolean check(RequirementsContext context, List args) continue; } else if (aH.matchesItem(arg)) { - item = aH.getItemFrom(arg); - dB.echoDebug("...ITEM set"); - continue; - + if (ScriptRegistry.getScriptContainerAs(aH.getStringFrom(arg), ItemScriptContainer.class) != null) { + item = ScriptRegistry.getScriptContainerAs(aH.getStringFrom(arg), ItemScriptContainer.class).getItemFrom(context.getPlayer(), context.getNPC()); + dB.echoDebug("...ITEM set from script"); + continue; + } else { + item = aH.getItemFrom(arg); + dB.echoDebug("...ITEM set"); + continue; + } } else if (aH.matchesItem("item:" + arg)) { item = aH.getItemFrom("item:" + arg); dB.echoDebug("...ITEM set");