Skip to content
This repository has been archived by the owner on Apr 12, 2022. It is now read-only.

Commit

Permalink
Fix SpawnType Event Switch
Browse files Browse the repository at this point in the history
  • Loading branch information
Xenmai committed Jun 15, 2018
1 parent 98a1577 commit ba07053
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 23 deletions.
Expand Up @@ -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;
Expand Down Expand Up @@ -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<String> error) {
return checkSpawnType(type, data, error, "spawn_type");
}

public static boolean checkSpawnType(String type, ScriptEvent.ScriptEventData data, Action<String> error, String tname) {
if (!data.switches.containsKey(tname)) {
return true;
}
for (AbstractTagObject ato : ListTag.getFor(error, data.switches.get(tname)).getInternal()) {
Optional<SpawnType> 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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit ba07053

Please sign in to comment.