package tv.mineinthebox.essentials.commands; import java.util.HashSet; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.enums.PermissionKey; import tv.mineinthebox.essentials.interfaces.CommandTemplate; public class CmdSpawner extends CommandTemplate { public CmdSpawner(xEssentials pl, Command cmd, CommandSender sender) { super(pl, cmd, sender); } @SuppressWarnings("deprecation") public boolean execute(CommandSender sender, Command cmd, String[] args) { if(cmd.getName().equalsIgnoreCase("spawner")) { if(sender instanceof Player) { if(sender.hasPermission(PermissionKey.CMD_SPAWNER.getPermission())) { EntityType[] entity = EntityType.values(); if(args.length == 0) { StringBuilder build = new StringBuilder(); for(int i = 0; i < entity.length; i++) { if(entity[i].isAlive()) { if(entity[i] == EntityType.WITHER) { } else if(entity[i] == EntityType.PLAYER) { } else { build.append(entity[i].name() + ", ").toString(); } } } sender.sendMessage(ChatColor.GOLD + ".oO___[Spawnmob]___Oo."); sender.sendMessage(ChatColor.GRAY + build.toString().toLowerCase()); } else if(args.length == 1) { Player p = (Player) sender; if(args[0].equalsIgnoreCase("give")) { sendMessage("added spawner in your inventory"); p.getInventory().addItem(new ItemStack(Material.MOB_SPAWNER)); } else { try { EntityType type = EntityType.valueOf(args[0].toUpperCase()); if(type.isAlive()) { if(type == EntityType.PLAYER) { sendMessage("player entities cannot used through Bukkit"); } else { Block block = p.getTargetBlock((HashSet<Byte>)null, 50); if(block.getType() == Material.MOB_SPAWNER) { CreatureSpawner spawner = (CreatureSpawner) block.getState(); String old = spawner.getSpawnedType().name(); sendMessage("successfully changed spawner from " + old.toLowerCase() + " to " + type.name().toLowerCase()); spawner.setSpawnedType(type); } } } else { sendMessage("this is not a peacefull mob or a hostile mob"); } } catch(IllegalArgumentException e) { sendMessage("this mob does not exist!"); } } } } else { getWarning(WarningType.NO_PERMISSION); } } else { getWarning(WarningType.PLAYER_ONLY); } } return false; } }