package joshie.progression.criteria.filters.location; import joshie.progression.api.ProgressionAPI; import joshie.progression.api.criteria.IFilter; import joshie.progression.api.criteria.IFilterProvider; import joshie.progression.api.criteria.IFilterType; import joshie.progression.lib.WorldLocation; public abstract class FilterLocationBase implements IFilter<WorldLocation, WorldLocation> { private IFilterProvider provider; @Override public IFilterProvider getProvider() { return provider; } @Override public void setProvider(IFilterProvider provider) { this.provider = provider; } @Override public void apply(WorldLocation location) {} @Override public boolean matches(Object object) { if (!(object instanceof WorldLocation)) return false; WorldLocation location = ((WorldLocation)object); if (location.player == null) return false; return matches(location); } @Override public IFilterType getType() { return ProgressionAPI.filters.getLocationFilter(); } public boolean matches(WorldLocation location) { return location.equals(getRandom(location.player)); } public enum LocationOperator { THISORMORE, THISORLESS, RADIUS; } }