herobrine-2/src/org/jakub1221/herobrineai/commands/CmdExecutor.java
2019-09-02 19:14:10 -04:00

95 lines
2.8 KiB
Java

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<String, SubCommand> subCommands = new HashMap<String, SubCommand>();
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<String> helpMessage = new ArrayList<String>();
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;
}
}