package me.McKiller5252.particlepack.command; import java.util.Arrays; import me.McKiller5252.particlepack.ParticlePack; import me.McKiller5252.particlepack.utility.Particle; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; public class CommandHandler implements CommandExecutor { public ChatColor pColor = ChatColor.GREEN; public ChatColor sColor = ChatColor.YELLOW; public ChatColor bold = ChatColor.BOLD; @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender instanceof Player) try { playerCommand(((Player)sender), cmd, args); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } else System.out.println("You must be a player to issue this command!"); return true; } public void playerCommand(Player player, Command cmd, String[] args) throws InstantiationException, IllegalAccessException { if(cmd.getName().equalsIgnoreCase("particlepack")) { if(args.length == 0) { player.sendMessage(sColor + "" + ChatColor.STRIKETHROUGH + "--------------------" + ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + sColor + "" + ChatColor.STRIKETHROUGH+"--------------------"); player.sendMessage(pColor + "Author: " + sColor + "Killer5252"); player.sendMessage(pColor + "Description: " + sColor + "Creates Particles near player!"); player.sendMessage(pColor + "Version: " + sColor + "1.0"); player.sendMessage(pColor + "Help: " + sColor + "Type " + ChatColor.LIGHT_PURPLE + "/particlepack help" + sColor + " to get a list of commands."); } else { if (args[0].equalsIgnoreCase("off")) { if (player.hasPermission("particlepack.off")) { ParticlePack.Instance().removerPlayerParticle(player); player.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + ChatColor.RED + " You no longer have a particle!"); } } else if (args[0].equalsIgnoreCase("help")) { if (player.hasPermission("particlepack.help")) { player.sendMessage(sColor + "" +ChatColor.STRIKETHROUGH+"--------------------" + ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + sColor + "" + ChatColor.STRIKETHROUGH+"--------------------"); player.sendMessage(pColor + "/particlepack off " + sColor + "- Turns off any particle you have on"); player.sendMessage(pColor + "/particlepack list " + sColor + "- Displays a list of all particles"); player.sendMessage(pColor + "/particlepack (name) " + sColor + "- Gives you the particle by the given name"); player.sendMessage(pColor + "/particlepack help " + sColor + "- Displays this page"); } } else if (args[0].equalsIgnoreCase("menu")) { if (player.hasPermission("particlepack.menu")) { player.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + ChatColor.GREEN + " You have given yourself the" + ChatColor.YELLOW + " ParticlePack Menu Tool!"); player.getInventory().setItem(7, particlepackMenu()); } } else if (args[0].equalsIgnoreCase("list")) { player.sendMessage(sColor + "" +ChatColor.STRIKETHROUGH+"--------------------" + ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + sColor + "" + ChatColor.STRIKETHROUGH+"--------------------"); player.sendMessage(sColor + "" +ChatColor.STRIKETHROUGH+"--------------------" + ChatColor.RED + "[" + ChatColor.GOLD + "Particle-List" + ChatColor.RED + "]" + sColor + "" + ChatColor.STRIKETHROUGH+"--------------------"); int i = 1; for (Particle par : ParticlePack.Instance().getParticleBase()) { player.sendMessage(pColor + "" + i + ". " + sColor + par.getName()); i++; } if (ParticlePack.Instance().getExternalParticles().size() == 0) return; player.sendMessage(sColor + "" +ChatColor.STRIKETHROUGH+"--------------------" + ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + sColor + "" + ChatColor.STRIKETHROUGH+"--------------------"); player.sendMessage(sColor + "" +ChatColor.STRIKETHROUGH+"--------------------" + ChatColor.RED + "[" + ChatColor.GOLD + "ParticleList" + ChatColor.RED + "]" + sColor + "" + ChatColor.STRIKETHROUGH+"--------------------"); player.sendMessage(sColor + "" +ChatColor.STRIKETHROUGH+"--------------------" + ChatColor.RED + "[" + ChatColor.GOLD + "(External)" + ChatColor.RED + "]" + sColor + "" + ChatColor.STRIKETHROUGH+"--------------------"); for (Particle par : ParticlePack.Instance().getExternalParticles()) { player.sendMessage(pColor + "" + i + ". " + sColor + par.getName()); i++; } } else { for (Particle par : ParticlePack.Instance().getPacticles()) { if (args[0].equalsIgnoreCase(par.getName()) || (par.getName().contains(" ") && par.getName().contains(args[0]))) { if (!(par.canUse(player))) { player.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + ChatColor.RED + " You do not have permission to use this particle!"); return; } if (par.getName().contains(" ")) { String[] gs = par.getName().split(" "); if (args.length == 1) { player.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + ChatColor.RED + " Please enter the" + gs[1] + "for the" + gs[0] + "particle!"); return; } else { String str = args[1]; player.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + ChatColor.RED + " You now have the " + ChatColor.YELLOW + gs[0] + ChatColor.RED + " particle with type " + ChatColor.YELLOW + args[1] + ChatColor.RED + "!"); Particle tra = par.getClass().newInstance(); tra.setValue(str); ParticlePack.Instance().setPlayerParticle(player, tra); return; } } else { ParticlePack.Instance().setPlayerParticle(player, par); player.sendMessage(ChatColor.RED + "[" + ChatColor.GOLD + "ParticlePack" + ChatColor.RED + "]" + ChatColor.GREEN + " You now have the " + ChatColor.YELLOW + bold.toString() + par.getName() + ChatColor.GREEN + " particle!"); return; } } } } } } } private ItemStack particlepackMenu() { ItemStack spawnItem; ItemMeta im; spawnItem = new ItemStack(Material.BLAZE_ROD); im = spawnItem.getItemMeta(); im.setDisplayName(ChatColor.YELLOW + "" + ChatColor.BOLD + "Particle Pack Menu"); im.setLore(Arrays.asList(ChatColor.AQUA + "Right click to open Particle Pack Menu")); spawnItem.setItemMeta(im); return spawnItem; } }