Launcher/LaunchServer/src/main/java/ru/gravit/launchserver/command/basic/HelpCommand.java

50 lines
1.4 KiB
Java

package ru.gravit.launchserver.command.basic;
import java.util.Map.Entry;
import ru.gravit.launcher.helper.LogHelper;
import ru.gravit.launchserver.LaunchServer;
import ru.gravit.launchserver.command.Command;
import ru.gravit.launchserver.command.CommandException;
public final class HelpCommand extends Command {
private static void printCommand(String name, Command command) {
String args = command.getArgsDescription();
LogHelper.subInfo("%s %s - %s", name, args == null ? "[nothing]" : args, command.getUsageDescription());
}
public HelpCommand(LaunchServer server) {
super(server);
}
@Override
public String getArgsDescription() {
return "[command name]";
}
@Override
public String getUsageDescription() {
return "Print command usage";
}
@Override
public void invoke(String... args) throws CommandException {
if (args.length < 1) {
printCommands();
return;
}
// Print command help
printCommand(args[0]);
}
private void printCommand(String name) throws CommandException {
printCommand(name, server.commandHandler.lookup(name));
}
private void printCommands() {
for (Entry<String, Command> entry : server.commandHandler.commandsMap().entrySet())
printCommand(entry.getKey(), entry.getValue());
}
}