package net.scapeemulator.game.model.player.requirement; import net.scapeemulator.game.model.player.Item; import net.scapeemulator.game.model.player.Player; /** * @author David Insley */ public class ItemRequirement extends Requirement { private final Item item; private final boolean remove; private final String error; public ItemRequirement(int itemId, boolean remove) { this(new Item(itemId, 1), remove, null); } public ItemRequirement(int itemId, int amount, boolean remove) { this(new Item(itemId, amount), remove, null); } public ItemRequirement(int itemId, boolean remove, String error) { this(new Item(itemId, 1), remove, error); } public ItemRequirement(int itemId, int amount, boolean remove, String error) { this(new Item(itemId, amount), remove, error); } public ItemRequirement(Item item, boolean remove) { this(item, remove, null); } public ItemRequirement(Item item, boolean remove, String error) { this.item = item; this.remove = remove; this.error = error; } @Override public boolean hasRequirement(Player player) { return player.getInventory().getAmount(item.getId()) >= item.getAmount(); } @Override public void displayErrorMessage(Player player) { if (error != null) { player.sendMessage(error); } } @Override public void fulfill(Player player) { if (remove) { player.getInventory().remove(item); } } }