package buttondevteam.alipresents.components.insurance; import org.apache.commons.lang.StringUtils; import org.bukkit.entity.Player; import buttondevteam.alipresents.architecture.commands.ModCommand; import buttondevteam.alipresents.components.insurance.Insurance.InsuranceType; public class getInsurance extends ModCommand { private final int defaultAmount = 1; private final InsuranceType defaultInsuranceType = InsuranceType.block; @Override public boolean OnCommand(Player player, String alias, String[] args) { int amount = defaultAmount; InsuranceType insuranceType = defaultInsuranceType; switch(args.length){ case 0: // no arguments break; case 1: // <amount> or <type> argument if (StringUtils.isNumeric(args[0])){ amount = Integer.parseInt(args[0]); break; }else if (Insurance.isInsuranceType(args[0])){ insuranceType = InsuranceType.valueOf(args[0]); break; }else{ player.sendMessage("Invalid Argument " + args[0]); player.sendMessage("Enter a type of insurance or a number as an argument"); player.sendMessage(Insurance.InsuranceType.values().toString()); return false; } default: // <amount> <type> argument if (StringUtils.isNumeric(args[0]) && Insurance.isInsuranceType(args[1])){ amount = Integer.parseInt(args[0]); insuranceType = InsuranceType.valueOf(args[1]); break; }else if (StringUtils.isNumeric(args[1]) && Insurance.isInsuranceType(args[0])){ amount = Integer.parseInt(args[1]); insuranceType = InsuranceType.valueOf(args[0]); break; }else{ player.sendMessage("Invalid Argument " + args[0] + "|" + args[1]); player.sendMessage("Usage /" + this.GetCommandPath() + " <amount>" + " <" + Insurance.InsuranceType.values().toString() + ">"); return false; } } player.getInventory().addItem(Insurance.getInsurance(insuranceType, amount)); return true; } @Override public String[] GetHelpText(String alias){ return new String[]{ "Usage: /"+this.GetCommandPath()+" [amount] [type:nugget/bar/block/compound]", "Use this command to get gold-standard inventory insurance, that saves ", "items in an inventory upon death. One nugget saves one ItemStack, a bar", "saves nine, a block saves 54. Compound converts amount (in nuggets) to a", "mix of both nuggets, bars and blocks" }; } @Override public String GetCommandPath() { return "insurance get"; } }