package tc.oc.pgm.filters.matcher; import java.util.Optional; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import tc.oc.pgm.filters.Filter; import tc.oc.pgm.filters.query.IQuery; public class StaticFilter extends Filter.Impl { protected final QueryResponse response; public StaticFilter(QueryResponse response) { this.response = response; } @Override public Optional<String> inspectIdentity() { return Optional.of(response.name()); } @Override public boolean isDynamic() { return response.isPresent(); } @Override public boolean respondsTo(Class<? extends IQuery> queryType) { return response.isPresent(); } @Override public QueryResponse query(IQuery query) { return response; } @Override public QueryResponse query(Block block) { return response; } @Override public QueryResponse query(BlockState block) { return response; } public static final StaticFilter ALLOW = new StaticFilter(QueryResponse.ALLOW); public static final StaticFilter DENY = new StaticFilter(QueryResponse.DENY); public static final StaticFilter ABSTAIN = new StaticFilter(QueryResponse.ABSTAIN); }