package tc.oc.pgm.filters.matcher.match;
import com.google.common.collect.Range;
import tc.oc.commons.core.random.SaltedEntropy;
import tc.oc.pgm.filters.matcher.TypedFilter;
import tc.oc.pgm.filters.query.IMatchQuery;
/**
* Random filter that responds to non-event queries, which exposes a lot of undefined behavior.
*
* Removed in proto 1.4.1
*/
public class LegacyRandomFilter extends TypedFilter.Impl<IMatchQuery> {
private final @Inspect Range<Double> chance;
public LegacyRandomFilter(Range<Double> chance) {
this.chance = chance;
}
@Override
public boolean matches(IMatchQuery query) {
return chance.contains(new SaltedEntropy(query.getMatch().entropyForTick(),
query.randomSeed())
.randomDouble());
}
}