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 943ff79dcc..54d1a52e8c 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/BukkitScriptEvent.java @@ -31,6 +31,7 @@ import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.*; +import java.util.function.Function; public abstract class BukkitScriptEvent extends ScriptEvent { @@ -288,6 +289,10 @@ public boolean couldMatchBlockOrItem(String text) { } public boolean couldMatchBlock(String text) { + return couldMatchBlock(text, null); + } + + public boolean couldMatchBlock(String text, Function requirement) { if (text.equals("block") || text.equals("material") || text.startsWith("vanilla_tagged:")) { return true; } @@ -304,7 +309,7 @@ public boolean couldMatchBlock(String text) { if (isAdvancedMatchable(text)) { MatchHelper matcher = createMatcher(text); for (Material material : Material.values()) { - if (material.isBlock() && matcher.doesMatch(material.name())) { + if (material.isBlock() && matcher.doesMatch(material.name()) && (requirement == null || requirement.apply(material))) { return true; } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesSignScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesSignScriptEvent.java index 0541a35631..703d3535e4 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesSignScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/player/PlayerChangesSignScriptEvent.java @@ -6,6 +6,7 @@ import com.denizenscript.denizencore.objects.core.ListTag; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.scripts.ScriptEntryData; +import com.denizenscript.denizencore.utilities.CoreUtilities; import org.bukkit.block.BlockState; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; @@ -59,7 +60,7 @@ public boolean couldMatch(ScriptPath path) { return false; } String sign = path.eventArgAt(2); - if (!sign.equals("sign") && !couldMatchBlock(sign)) { + if (!sign.equals("sign") && !couldMatchBlock(sign, (m) -> CoreUtilities.toLowerCase(m.name()).endsWith("sign"))) { return false; } return true;