package com.crossge.necessities.Commands; import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import com.crossge.necessities.ArrayLists; public class CmdEnchant extends Cmd { ArrayLists arl = new ArrayLists(); public CmdEnchant() { } public boolean commandUse(CommandSender sender, String[] args) { if (sender instanceof Player) { if (args.length == 0 || args.length > 2) return false; Player player = (Player) sender; if (args.length == 1) { Enchantment ench = Enchantment.getByName(enchantFinder(args[0])); if(ench == null) { player.sendMessage(arl.getCol() + "Enchantment does not exist."); return true; } int level = ench.getMaxLevel(); if(ench.canEnchantItem(player.getInventory().getItemInHand())) { player.getInventory().getItemInHand().addEnchantment(ench, level); player.sendMessage(arl.getCol() + "Added the enchantment " + trueName(ench.getName()) + " at level " + Integer.toString(level) + "."); return true; } player.sendMessage(arl.getCol() + "This item can not support given enchantment."); } if (args.length == 2) { Enchantment ench = null; if(!args[0].equalsIgnoreCase("all")) { ench = Enchantment.getByName(enchantFinder(args[0])); if(ench == null) { player.sendMessage(arl.getCol() + "Enchantment does not exist."); return true; } } try { Integer.parseInt(args[1]); } catch(Exception e) { return false; } int level = Integer.parseInt(args[1]); if(!args[0].equalsIgnoreCase("all") && level > ench.getMaxLevel() && !player.hasPermission("Necessities.unsafeEnchant")) level = ench.getMaxLevel(); if(player.hasPermission("Necessities.unsafeEnchant") && level > 127) level = 127; if(args[0].equalsIgnoreCase("all") && (Enchantment.PROTECTION_ENVIRONMENTAL.canEnchantItem(player.getInventory().getItemInHand()) || player.hasPermission("Necessities.unsafeEnchant"))) { enchantAllArmor(level, player); player.sendMessage(arl.getCol() + "Added all armor enchantments at level " + Integer.toString(level) + "."); return true; } else if(ench.canEnchantItem(player.getInventory().getItemInHand()) || player.hasPermission("Necessities.unsafeEnchant")) { player.getInventory().getItemInHand().addUnsafeEnchantment(ench, level); player.sendMessage(arl.getCol() + "Added the enchantment " + trueName(ench.getName()) + " at level " + Integer.toString(level) + "."); return true; } player.sendMessage(arl.getCol() + "This item can not support given enchantment."); } return true; } else { sender.sendMessage(arl.getCol() + "You are not a player so you do not have an items."); return true; } } private void enchantAllArmor(int level, Player player) { player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("OXYGEN"), level); player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("PROTECTION_ENVIRONMENTAL"), level); player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("PROTECTION_EXPLOSIONS"), level); player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("PROTECTION_FALL"), level); player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("PROTECTION_FIRE"), level); player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("PROTECTION_PROJECTILE"), level); player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("WATER_WORKER"), level); player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("THORNS"), level); player.getInventory().getItemInHand().addUnsafeEnchantment(Enchantment.getByName("DURABILITY"), level); } private String enchantFinder(String enchant) { enchant = enchant.toUpperCase(); if(enchant.equals("POWER")) enchant = "ARROW_DAMAGE"; else if(enchant.equals("FLAME")) enchant = "ARROW_FIRE"; else if(enchant.equals("INFINITY")) enchant = "ARROW_INFINITY"; else if(enchant.equals("PUNCH")) enchant = "ARROW_KNOCKBACK"; else if(enchant.equals("SHARPNESS")) enchant = "DAMAGE_ALL"; else if(enchant.equals("BANEOFARTHROPODS")) enchant = "DAMAGE_ARTHROPODS"; else if(enchant.equals("BANE")) enchant = "DAMAGE_ARTHROPODS"; else if(enchant.equals("SMITE")) enchant = "DAMAGE_UNDEAD"; else if(enchant.equals("EFFICIENCY")) enchant = "DIG_SPEED"; else if(enchant.equals("UNBREAKING")) enchant = "DURABILITY"; else if(enchant.equals("FIREASPECT")) enchant = "FIRE_ASPECT"; else if(enchant.equals("FORTUNE")) enchant = "LOOT_BONUS_BLOCKS"; else if(enchant.equals("LOOTING")) enchant = "LOOT_BONUS_MOBS"; else if(enchant.equals("RESPIRATION")) enchant = "OXYGEN"; else if(enchant.equals("PROTECTION")) enchant = "PROTECTION_ENVIRONMENTAL"; else if(enchant.equals("BLASTPROTECTION")) enchant = "PROTECTION_EXPLOSIONS"; else if(enchant.equals("FEATHERFALLING")) enchant = "PROTECTION_FALL"; else if(enchant.equals("FIREPROTECTION")) enchant = "PROTECTION_FIRE"; else if(enchant.equals("PROJECTILEPROTECTION")) enchant = "PROTECTION_PROJECTILE"; else if(enchant.equals("SILKTOUCH")) enchant = "SILK_TOUCH"; else if(enchant.equals("AQUAINFINITY")) enchant = "WATER_WORKER"; return enchant; } private String trueName(String enchant) { if(enchant.equals("ARROW_DAMAGE")) enchant = "power"; else if(enchant.equals("ARROW_FIRE")) enchant = "flame"; else if(enchant.equals("ARROW_INFINITY")) enchant = "infinity"; else if(enchant.equals("ARROW_KNOCKBACK")) enchant = "punch"; else if(enchant.equals("DAMAGE_ALL")) enchant = "sharpness"; else if(enchant.equals("DAMAGE_ARTHROPODS")) enchant = "bane of arthropods"; else if(enchant.equals("DAMAGE_UNDEAD")) enchant = "smite"; else if(enchant.equals("DIG_SPEED")) enchant = "efficiency"; else if(enchant.equals("DURABILITY")) enchant = "unbreaking"; else if(enchant.equals("FIRE_ASPECT")) enchant = "fire aspect"; else if(enchant.equals("LOOT_BONUS_BLOCKS")) enchant = "fortune"; else if(enchant.equals("LOOT_BONUS_MOBS")) enchant = "looting"; else if(enchant.equals("OXYGEN")) enchant = "respiration"; else if(enchant.equals("PROTECTION_ENVIRONMENTAL")) enchant = "protection"; else if(enchant.equals("PROTECTION_EXPLOSIONS")) enchant = "blast protection"; else if(enchant.equals("PROTECTION_FALL")) enchant = "feather falling"; else if(enchant.equals("PROTECTION_FIRE")) enchant = "fire protection"; else if(enchant.equals("PROTECTION_PROJECTILE")) enchant = "projectile protection"; else if(enchant.equals("SILK_TOUCH")) enchant = "silk touch"; else if(enchant.equals("WATER_WORKER")) enchant = "aqua infinity"; return enchant.toLowerCase(); } }