From ba070539dc53f70610ee726d4926a2a65508538a Mon Sep 17 00:00:00 2001 From: Xenmai Date: Mon, 9 Apr 2018 16:31:47 +0200 Subject: [PATCH] Fix SpawnType Event Switch --- .../events/D2SpongeEventHelper.java | 22 ------------------- .../entity/EntitySpawnsScriptEvent.java | 4 +++- 2 files changed, 3 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/denizenscript/denizen2sponge/events/D2SpongeEventHelper.java b/src/main/java/com/denizenscript/denizen2sponge/events/D2SpongeEventHelper.java index 160f63e..1a4862f 100644 --- a/src/main/java/com/denizenscript/denizen2sponge/events/D2SpongeEventHelper.java +++ b/src/main/java/com/denizenscript/denizen2sponge/events/D2SpongeEventHelper.java @@ -18,7 +18,6 @@ import org.spongepowered.api.data.type.HandType; import org.spongepowered.api.entity.EntityType; import org.spongepowered.api.entity.living.player.gamemode.GameMode; -import org.spongepowered.api.event.cause.entity.spawn.SpawnType; import org.spongepowered.api.item.ItemType; import org.spongepowered.api.world.World; import org.spongepowered.api.world.weather.Weather; @@ -163,27 +162,6 @@ else if (Utilities.getIdWithoutDefaultPrefix(opt.get().getId()).equals(type)) { return false; } - public static boolean checkSpawnType(String type, ScriptEvent.ScriptEventData data, Action error) { - return checkSpawnType(type, data, error, "spawn_type"); - } - - public static boolean checkSpawnType(String type, ScriptEvent.ScriptEventData data, Action error, String tname) { - if (!data.switches.containsKey(tname)) { - return true; - } - for (AbstractTagObject ato : ListTag.getFor(error, data.switches.get(tname)).getInternal()) { - Optional opt = getRegistry().getType(SpawnType.class, ato.toString()); - if (!opt.isPresent()) { - error.run("Invalid spawn type: '" + ato.debug() + "'!"); - return false; - } - else if (Utilities.getIdWithoutDefaultPrefix(opt.get().getId()).equals(type)) { - return true; - } - } - return false; - } - // <--[explanation] // @Since 0.3.0 // @Name With Item Switch For Events diff --git a/src/main/java/com/denizenscript/denizen2sponge/events/entity/EntitySpawnsScriptEvent.java b/src/main/java/com/denizenscript/denizen2sponge/events/entity/EntitySpawnsScriptEvent.java index 3e73017..59fd0cb 100644 --- a/src/main/java/com/denizenscript/denizen2sponge/events/entity/EntitySpawnsScriptEvent.java +++ b/src/main/java/com/denizenscript/denizen2sponge/events/entity/EntitySpawnsScriptEvent.java @@ -12,6 +12,7 @@ import org.spongepowered.api.entity.Entity; import org.spongepowered.api.event.Listener; import org.spongepowered.api.event.cause.EventContextKeys; +import org.spongepowered.api.event.cause.entity.spawn.SpawnType; import org.spongepowered.api.event.entity.SpawnEntityEvent; import org.spongepowered.api.world.Location; import org.spongepowered.api.world.World; @@ -78,7 +79,8 @@ public boolean matches(ScriptEvent.ScriptEventData data) { && D2SpongeEventHelper.checkCuboid((new LocationTag(loc)).getInternal(), data, this::error) && D2SpongeEventHelper.checkWeather(Utilities.getIdWithoutDefaultPrefix( world.getWeather().getId()), data, this::error) - && D2SpongeEventHelper.checkSpawnType(spawnType.toString(), data, this::error); + && D2SpongeEventHelper.checkCatalogType( + SpawnType.class, spawnType.toString(), data, this::error, "spawn_type"); } public EntityTag entity;