package net.CyanWool.api.command;
import java.util.Arrays;
import java.util.HashMap;
import net.CyanWool.api.command.cyanwool.PluginsCommand;
import net.CyanWool.api.command.cyanwool.StopCommand;
import net.CyanWool.api.command.cyanwool.VersionCommand;
public class CommandManager {
public HashMap<String, Command> commands = new HashMap<String, Command>();
public CommandManager() {
register(new StopCommand());
register(new PluginsCommand());
register(new VersionCommand());
}
public void register(Command command) {
commands.put(command.getName(), command);
}
public void unregister(String name) {
commands.remove(name);
}
public void dispatchCommand(ICommandSender sender, String rawMessage) {
String[] args = rawMessage.split(" ");
String label = args[0];
Command command = commands.get(label);
if (command == null) {
String text = "Unknown command. Type /help for help.";
sender.sendMessage(text);
return;
}
if (sender instanceof ConsoleCommandSender && !command.isConsoleAccess()) {
String text = "This command is not accesible from console.";
sender.sendMessage(text);
return;
}
String[] rangedArgs = Arrays.copyOfRange(args, 1, args.length);
command.execute(sender, rangedArgs);
}
}