package tc.oc.pgm.filters.matcher.player; import java.util.function.Predicate; import org.bukkit.inventory.ItemStack; import tc.oc.pgm.filters.ItemMatcher; import tc.oc.pgm.filters.query.IPlayerQuery; import tc.oc.pgm.match.MatchPlayer; public abstract class SpawnedPlayerItemFilter extends SpawnedPlayerFilter { @Inspect(inline = true) private final Predicate<? super ItemStack> matcher; public SpawnedPlayerItemFilter(ItemStack base) { this(new ItemMatcher(base)); } public SpawnedPlayerItemFilter(Predicate<? super ItemStack> matcher) { this.matcher = matcher; } protected abstract Iterable<ItemStack> getItems(MatchPlayer player); @Override protected boolean matches(IPlayerQuery query, MatchPlayer player) { for(ItemStack item : getItems(player)) { if(matcher.test(item)) return true; } return false; } }