package tc.oc.pgm.filters.matcher.block;
import org.bukkit.Material;
import org.bukkit.block.BlockState;
import tc.oc.pgm.filters.matcher.TypedFilter;
import tc.oc.pgm.filters.query.IBlockQuery;
import tc.oc.pgm.listeners.WorldProblemMatchModule;
/**
* Matches blocks that have only air/void below them
*/
public class VoidFilter extends TypedFilter.Impl<IBlockQuery> {
@Override
public boolean matches(IBlockQuery query) {
final BlockState block = query.getBlock();
return block.getY() == 0 ||
(!query.getMatch().needMatchModule(WorldProblemMatchModule.class).wasBlock36(block.getX(), 0, block.getZ()) &&
block.getWorld().getBlockAt(block.getX(), 0, block.getZ()).getType() == Material.AIR);
}
@Override
public String toString() {
return "VoidFilter{}";
}
}