package tc.oc.pgm.utils;
import java.util.Arrays;
import java.util.Collection;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.MaterialData;
import org.bukkit.util.ImmutableMaterialSet;
import tc.oc.commons.core.inspect.Inspectable;
public class BlockMaterialMatcher extends Inspectable.Impl implements MaterialMatcher {
public static final BlockMaterialMatcher INSTANCE = new BlockMaterialMatcher();
private BlockMaterialMatcher() {}
private static final ImmutableMaterialSet BLOCKS = ImmutableMaterialSet.of(Collections2.filter(Arrays.asList(Material.values()), new Predicate<Material>() {
@Override
public boolean apply(Material input) {
return input.isBlock();
}
}));
@Override
public boolean matches(Material material) {
return material.isBlock();
}
@Override
public boolean matches(MaterialData materialData) {
return materialData.getItemType().isBlock();
}
@Override
public boolean matches(ItemStack stack) {
return stack.getType().isBlock();
}
@Override
public Collection<Material> getMaterials() {
return BLOCKS;
}
}