package tc.oc.pgm.itemkeep; import org.bukkit.inventory.ItemStack; import tc.oc.commons.bukkit.inventory.Slot; import tc.oc.pgm.filters.Filter; import tc.oc.pgm.filters.matcher.StaticFilter; import tc.oc.pgm.filters.query.MaterialQuery; public class ItemKeepRules { public final Filter itemFilter, armorFilter; public ItemKeepRules(Filter itemFilter, Filter armorFilter) { this.itemFilter = itemFilter; this.armorFilter = armorFilter; } public boolean canKeepAny() { return !StaticFilter.DENY.equals(itemFilter) || !StaticFilter.DENY.equals(armorFilter); } public boolean canKeep(Slot slot, ItemStack item) { final MaterialQuery query = MaterialQuery.of(item.getData()); return itemFilter.query(query).toBoolean(false) || (slot instanceof Slot.Armor && armorFilter.query(query).toBoolean(false)); } }