package me.DDoS.MCCasino.bet; import java.util.List; import me.DDoS.MCCasino.util.MCCUtil; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; /** * * @author DDoS */ public class ItemBetProvider implements BetProvider { private final List<ItemStack> limits; public ItemBetProvider(List<ItemStack> limits) { this.limits = limits; } @Override public Bet getBet(Player player) { ItemStack bet = player.getItemInHand(); if (bet.getType().equals(Material.AIR)) { MCCUtil.tell(player, "You can't bet nothing!"); return null; } if (bet.getType().equals(Material.DIAMOND_SWORD) || bet.getType().equals(Material.IRON_SWORD) || bet.getType().equals(Material.STONE_SWORD) || bet.getType().equals(Material.GOLD_SWORD) || bet.getType().equals(Material.WOOD_SWORD)) { return null; } if (limits.isEmpty()) { player.getInventory().removeItem(bet); return new ItemBet(bet); } boolean notEnough = false; int smallest = Integer.MAX_VALUE; for (ItemStack limit : limits) { if (bet.getType() != limit.getType()) { continue; } int amount = limit.getAmount(); if (bet.getAmount() < amount) { notEnough = true; if (amount < smallest) { smallest = amount; } continue; } player.getInventory().removeItem(limit); player.updateInventory(); return new ItemBet(limit); } if (notEnough) { MCCUtil.tell(player, "You need to increase your bet of '" + bet.getType().toString().toLowerCase() + "' to " + smallest + " items"); } else { MCCUtil.tell(player, "This machine does not accept item '" + bet.getType().toString().toLowerCase() + "' as a bet."); } return null; } }