package me.StevenLawson.TotalFreedomMod.commands; import me.StevenLawson.TotalFreedomMod.Log; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; @CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME) public class Command_enchant extends FreedomCommand { @Override public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { if (args.length < 1) { return false; } ItemStack itemInHand = sender_p.getItemInHand(); if (itemInHand == null) { playerMsg(sender, "You are holding an invalid item."); return true; } if (args[0].equalsIgnoreCase("list")) { boolean has_enchantments = false; StringBuilder possible_ench = new StringBuilder("Possible enchantments for held item: "); for (Enchantment ench : Enchantment.values()) { if (ench.canEnchantItem(itemInHand)) { has_enchantments = true; possible_ench.append(ench.getName()).append(", "); } } if (has_enchantments) { playerMsg(sender, possible_ench.toString()); } else { playerMsg(sender, "The held item has no enchantments."); } } else if (args[0].equalsIgnoreCase("addall")) { for (Enchantment ench : Enchantment.values()) { try { if (ench.canEnchantItem(itemInHand)) { itemInHand.addEnchantment(ench, ench.getMaxLevel()); } } catch (Exception ex) { Log.info("Error using " + ench.getName() + " on " + itemInHand.getType().name() + " held by " + sender_p.getName() + "."); } } playerMsg(sender, "Added all possible enchantments for this item."); } else if (args[0].equalsIgnoreCase("reset")) { for (Enchantment ench : itemInHand.getEnchantments().keySet()) { itemInHand.removeEnchantment(ench); } playerMsg(sender, "Removed all enchantments."); } else { if (args.length < 2) { return false; } Enchantment ench = null; try { ench = Enchantment.getByName(args[1]); } catch (Exception ex) { } if (ench == null) { playerMsg(sender, args[1] + " is an invalid enchantment for the held item. Type \"/enchant list\" for valid enchantments for this item."); return true; } if (args[0].equalsIgnoreCase("add")) { if (ench.canEnchantItem(itemInHand)) { itemInHand.addEnchantment(ench, ench.getMaxLevel()); playerMsg(sender, "Added enchantment: " + ench.getName()); } else { playerMsg(sender, "Can't use this enchantment on held item."); } } else if (args[0].equals("remove")) { itemInHand.removeEnchantment(ench); playerMsg(sender, "Removed enchantment: " + ench.getName()); } } return true; } }