package in.twizmwaz.cardinal.module.modules.filter.type; import in.twizmwaz.cardinal.module.modules.filter.FilterModule; import in.twizmwaz.cardinal.module.modules.filter.FilterState; import in.twizmwaz.cardinal.module.modules.filter.parsers.SpawnFilterParser; import org.bukkit.event.entity.CreatureSpawnEvent; import static in.twizmwaz.cardinal.module.modules.filter.FilterState.*; public class SpawnFilter extends FilterModule { private final CreatureSpawnEvent.SpawnReason reason; public SpawnFilter(final SpawnFilterParser parser) { super(parser.getName(), parser.getParent()); this.reason = parser.getReason(); } @Override public FilterState evaluate(final Object... objects) { for (Object object : objects) { if (object instanceof CreatureSpawnEvent) { if (((CreatureSpawnEvent) object).getSpawnReason().equals(reason)) return ALLOW; else return DENY; } } return (getParent() == null ? ABSTAIN : getParent().evaluate(objects)); } }