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.MobFilterParser; import net.minecraft.server.EntityInsentient; import org.bukkit.craftbukkit.entity.CraftEntity; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import static in.twizmwaz.cardinal.module.modules.filter.FilterState.ABSTAIN; import static in.twizmwaz.cardinal.module.modules.filter.FilterState.ALLOW; import static in.twizmwaz.cardinal.module.modules.filter.FilterState.DENY; public class MobFilter extends FilterModule { private final EntityType mobType; public MobFilter(final MobFilterParser parser) { super(parser.getName(), parser.getParent()); this.mobType = parser.getMobType(); } @Override public FilterState evaluate(Object... objects) { for (Object object : objects) { if (object instanceof Entity) { if (((CraftEntity)object).getHandle() instanceof EntityInsentient && mobType.equals(((CraftEntity) object).getType())) return ALLOW; else return DENY; } } return (getParent() == null ? ABSTAIN : getParent().evaluate(objects)); } }