package joshie.progression.criteria.filters.item; 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.helpers.ItemHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; public abstract class FilterBaseItem implements IFilter<ItemStack, ItemStack> { private IFilterProvider provider; @Override public IFilterProvider getProvider() { return provider; } @Override public void setProvider(IFilterProvider provider) { this.provider = provider; } @Override public void apply(ItemStack stack) {} @Override public ItemStack getRandom(EntityPlayer player) { return ItemHelper.getRandomItem(this.getProvider()); } @Override public boolean matches(Object object) { return object instanceof ItemStack ? matches((ItemStack)object) : false; } @Override public IFilterType getType() { return ProgressionAPI.filters.getItemStackFilter(); } public abstract boolean matches(ItemStack stack); }