package org.jakub1221.herobrineai.commands; import java.util.ArrayList; import java.util.HashMap; import java.util.logging.Logger; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jakub1221.herobrineai.HerobrineAI; public class CmdExecutor implements CommandExecutor { private Logger log = null; private HashMap subCommands = new HashMap(); private String[] helpCommandOrder = { "reload", "cancel", "allworlds", "position", "attack", "haunt", "heads", "bury", "curse", "burn", "pyramid", "cave", "temple", "graveyard" }; public CmdExecutor(HerobrineAI p) { log = HerobrineAI.log; subCommands.put("reload", new CmdReload(p, log)); subCommands.put("cancel", new CmdCancel(p, log)); subCommands.put("attack", new CmdAttack(p, log)); subCommands.put("haunt", new CmdHaunt(p, log)); subCommands.put("bury", new CmdBury(p, log)); subCommands.put("pyramid", new CmdPyramid(p, log)); subCommands.put("temple", new CmdTemple(p, log)); subCommands.put("curse", new CmdCurse(p, log)); subCommands.put("burn", new CmdBurn(p, log)); subCommands.put("cave", new CmdCave(p, log)); subCommands.put("graveyard", new CmdGraveyard(p, log)); subCommands.put("allworlds", new CmdAllWorlds(p, log)); subCommands.put("position", new CmdPosition(p, log)); subCommands.put("heads", new CmdHeads(p, log)); } public void ShowHelp(Player player) { ArrayList helpMessage = new ArrayList(); helpMessage.add(ChatColor.GREEN + "[HerobrineAI] Command list"); helpMessage.add(ChatColor.GREEN + "/hb-ai help - shows all commands"); for (String v : helpCommandOrder) helpMessage.add(((SubCommand) subCommands.get(v)).help()); if (player == null) for (String v : helpMessage) log.info(ChatColor.stripColor(v)); else for (String v : helpMessage) player.sendMessage(v); } @Override public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (args.length == 0) return false; Player player = null; if (sender instanceof Player) player = (Player) sender; SubCommand subcmd = subCommands.get(args[0]); if (subcmd == null && args[0].equals("help")) { ShowHelp(player); return true; } else if (subcmd == null) return false; if (player != null && !player.hasPermission("hb-ai." + args[0])) { player.sendMessage(ChatColor.RED + "Insufficient permission!"); return true; } if (!subcmd.execute(player, args)) if (player == null) log.info("Usage: " + subcmd.help()); else player.sendMessage("Usage: " + subcmd.help()); return true; } }