diff --git a/src/main/java/com/denizenscript/denizen2sponge/events/D2SpongeEventHelper.java b/src/main/java/com/denizenscript/denizen2sponge/events/D2SpongeEventHelper.java index 9fa1751..906b9b8 100644 --- a/src/main/java/com/denizenscript/denizen2sponge/events/D2SpongeEventHelper.java +++ b/src/main/java/com/denizenscript/denizen2sponge/events/D2SpongeEventHelper.java @@ -1,6 +1,8 @@ package com.denizenscript.denizen2sponge.events; import com.denizenscript.denizen2core.events.ScriptEvent; +import com.denizenscript.denizen2core.tags.AbstractTagObject; +import com.denizenscript.denizen2core.tags.objects.ListTag; import com.denizenscript.denizen2core.utilities.Action; import com.denizenscript.denizen2sponge.tags.objects.BlockTypeTag; import com.denizenscript.denizen2sponge.tags.objects.EntityTypeTag; @@ -16,10 +18,15 @@ public static boolean checkBlockType(BlockType btype, ScriptEvent.ScriptEventDat } public static boolean checkBlockType(BlockType btype, ScriptEvent.ScriptEventData data, Action error, String tname) { - // TODO: type_list as well? - return !data.switches.containsKey(tname) - || BlockTypeTag.getFor(error, data.switches.get(tname)).getInternal() - .equals(btype); + if (!data.switches.containsKey(tname)) { + return true; + } + for (AbstractTagObject ato : ListTag.getFor(error, data.switches.get(tname)).getInternal()) { + if ((BlockTypeTag.getFor(error, ato)).getInternal().equals(btype)) { + return true; + } + } + return false; } public static boolean checkEntityType(EntityType etype, ScriptEvent.ScriptEventData data, Action error) { @@ -27,10 +34,15 @@ public static boolean checkEntityType(EntityType etype, ScriptEvent.ScriptEventD } public static boolean checkEntityType(EntityType etype, ScriptEvent.ScriptEventData data, Action error, String tname) { - // TODO: type_list as well? - return !data.switches.containsKey(tname) - || EntityTypeTag.getFor(error, data.switches.get(tname)).getInternal() - .equals(etype); + if (!data.switches.containsKey(tname)) { + return true; + } + for (AbstractTagObject ato : ListTag.getFor(error, data.switches.get(tname)).getInternal()) { + if ((EntityTypeTag.getFor(error, ato)).getInternal().equals(etype)) { + return true; + } + } + return false; } public static boolean checkWorld(World world, ScriptEvent.ScriptEventData data, Action error) { @@ -38,9 +50,14 @@ public static boolean checkWorld(World world, ScriptEvent.ScriptEventData data, } public static boolean checkWorld(World world, ScriptEvent.ScriptEventData data, Action error, String tname) { - // TODO: type_list as well? - return !data.switches.containsKey(tname) - || WorldTag.getFor(error, data.switches.get(tname)).getInternal() - .equals(world); + if (!data.switches.containsKey(tname)) { + return true; + } + for (AbstractTagObject ato : ListTag.getFor(error, data.switches.get(tname)).getInternal()) { + if ((WorldTag.getFor(error, ato)).getInternal().equals(world)) { + return true; + } + } + return false; } } diff --git a/src/main/java/com/denizenscript/denizen2sponge/events/world/BlockFadesScriptEvent.java b/src/main/java/com/denizenscript/denizen2sponge/events/world/BlockFadesScriptEvent.java index f5322b6..b579429 100644 --- a/src/main/java/com/denizenscript/denizen2sponge/events/world/BlockFadesScriptEvent.java +++ b/src/main/java/com/denizenscript/denizen2sponge/events/world/BlockFadesScriptEvent.java @@ -51,7 +51,6 @@ public boolean couldMatch(ScriptEventData data) { @Override public boolean matches(ScriptEventData data) { return D2SpongeEventHelper.checkBlockType(material.getInternal(), data, this::error); - } public LocationTag location;