diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java index 444ea22f3d..4aa6e084ad 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java @@ -274,9 +274,15 @@ public boolean couldMatchVehicle(String text) { } public boolean couldMatchBlockOrItem(String text) { - if (text.equals("block") || text.equals("material") || text.equals("item") || text.equals("potion") || text.startsWith("item_flagged:") || text.startsWith("vanilla_tagged:")) { + if (text.equals("block") || text.equals("material") || text.equals("item") || text.equals("potion")) { return true; } + int colon = text.indexOf(':'); + if (colon != -1) { + if (itemCouldMatchPrefixes.contains(text.substring(0, colon))) { + return true; + } + } if (MaterialTag.matches(text)) { MaterialTag mat = MaterialTag.valueOf(text, CoreUtilities.noDebugContext); if (mat == null) { @@ -338,12 +344,17 @@ public boolean couldMatchBlock(String text, Function requirem return false; } + public static HashSet itemCouldMatchPrefixes = new HashSet<>(Arrays.asList("item_flagged", "vanilla_tagged", "item_enchanted", "material_flagged", "raw_exact")); + public boolean couldMatchItem(String text) { if (text.equals("item") || text.equals("potion")) { return true; } - if (text.startsWith("item_flagged:") || text.startsWith("vanilla_tagged:")) { - return true; + int colon = text.indexOf(':'); + if (colon != -1) { + if (itemCouldMatchPrefixes.contains(text.substring(0, colon))) { + return true; + } } if (MaterialTag.matches(text)) { MaterialTag mat = MaterialTag.valueOf(text, CoreUtilities.noDebugContext); diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerHoldsItemEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerHoldsItemEvent.java index f6e22fed22..787e5ead24 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerHoldsItemEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerHoldsItemEvent.java @@ -61,7 +61,7 @@ public boolean couldMatch(ScriptPath path) { if (!(middleWord.equals("raises") || middleWord.equals("lowers") || middleWord.equals("toggles"))) { return false; } - if (!path.eventArgLowerAt(2).equals("item") && !couldMatchItem(path.eventArgLowerAt(2))) { + if (!couldMatchItem(path.eventArgLowerAt(2))) { return false; } return true;