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.BlockFilterParser; import org.bukkit.Material; import org.bukkit.block.Block; import static in.twizmwaz.cardinal.module.modules.filter.FilterState.*; public class BlockFilter extends FilterModule { private final Material material; private final int damageValue; public BlockFilter(final BlockFilterParser parser) { super(parser.getName(), parser.getParent()); this.material = parser.getMaterial(); this.damageValue = parser.getDamageValue(); } @Override public FilterState evaluate(final Object... objects) { for (Object object : objects) { if (object instanceof Block) { if (((Block) object).getType().equals(material) && (damageValue == -1 || (int) ((Block) object).getState().getData().getData() == damageValue)) return ALLOW; else return DENY; } } return (getParent() == null ? ABSTAIN : getParent().evaluate(objects)); } }