Search in sources :

Example 1 with ICommand

use of baritone.api.command.ICommand in project baritone by cabaletta.

the class HelpCommand method execute.

@Override
public void execute(String label, IArgConsumer args) throws CommandException {
    args.requireMax(1);
    if (!args.hasAny() || args.is(Integer.class)) {
        Paginator.paginate(args, new Paginator<>(this.baritone.getCommandManager().getRegistry().descendingStream().filter(command -> !command.hiddenFromHelp()).collect(Collectors.toList())), () -> logDirect("All Baritone commands (clickable):"), command -> {
            String names = String.join("/", command.getNames());
            String name = command.getNames().get(0);
            ITextComponent shortDescComponent = new TextComponentString(" - " + command.getShortDesc());
            shortDescComponent.getStyle().setColor(TextFormatting.DARK_GRAY);
            ITextComponent namesComponent = new TextComponentString(names);
            namesComponent.getStyle().setColor(TextFormatting.WHITE);
            ITextComponent hoverComponent = new TextComponentString("");
            hoverComponent.getStyle().setColor(TextFormatting.GRAY);
            hoverComponent.appendSibling(namesComponent);
            hoverComponent.appendText("\n" + command.getShortDesc());
            hoverComponent.appendText("\n\nClick to view full help");
            String clickCommand = FORCE_COMMAND_PREFIX + String.format("%s %s", label, command.getNames().get(0));
            ITextComponent component = new TextComponentString(name);
            component.getStyle().setColor(TextFormatting.GRAY);
            component.appendSibling(shortDescComponent);
            component.getStyle().setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, hoverComponent)).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, clickCommand));
            return component;
        }, FORCE_COMMAND_PREFIX + label);
    } else {
        String commandName = args.getString().toLowerCase();
        ICommand command = this.baritone.getCommandManager().getCommand(commandName);
        if (command == null) {
            throw new CommandNotFoundException(commandName);
        }
        logDirect(String.format("%s - %s", String.join(" / ", command.getNames()), command.getShortDesc()));
        logDirect("");
        command.getLongDesc().forEach(this::logDirect);
        logDirect("");
        ITextComponent returnComponent = new TextComponentString("Click to return to the help menu");
        returnComponent.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, FORCE_COMMAND_PREFIX + label));
        logDirect(returnComponent);
    }
}
Also used : Arrays(java.util.Arrays) CommandNotFoundException(baritone.api.command.exception.CommandNotFoundException) TabCompleteHelper(baritone.api.command.helpers.TabCompleteHelper) Command(baritone.api.command.Command) CommandException(baritone.api.command.exception.CommandException) TextFormatting(net.minecraft.util.text.TextFormatting) Paginator(baritone.api.command.helpers.Paginator) ClickEvent(net.minecraft.util.text.event.ClickEvent) IArgConsumer(baritone.api.command.argument.IArgConsumer) Collectors(java.util.stream.Collectors) FORCE_COMMAND_PREFIX(baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX) ITextComponent(net.minecraft.util.text.ITextComponent) TextComponentString(net.minecraft.util.text.TextComponentString) IBaritone(baritone.api.IBaritone) List(java.util.List) Stream(java.util.stream.Stream) HoverEvent(net.minecraft.util.text.event.HoverEvent) ICommand(baritone.api.command.ICommand) HoverEvent(net.minecraft.util.text.event.HoverEvent) ICommand(baritone.api.command.ICommand) ClickEvent(net.minecraft.util.text.event.ClickEvent) ITextComponent(net.minecraft.util.text.ITextComponent) TextComponentString(net.minecraft.util.text.TextComponentString) CommandNotFoundException(baritone.api.command.exception.CommandNotFoundException) TextComponentString(net.minecraft.util.text.TextComponentString)

Example 2 with ICommand

use of baritone.api.command.ICommand in project Spark-Client by Spark-Client-Development.

the class HelpCommand method execute.

@Override
public void execute(String label, IArgConsumer args) throws CommandException {
    args.requireMax(1);
    if (!args.hasAny() || args.is(Integer.class)) {
        Paginator.paginate(args, new Paginator<>(this.baritone.getCommandManager().getRegistry().descendingStream().filter(command -> !command.hiddenFromHelp()).collect(Collectors.toList())), () -> logDirect("All Baritone commands (clickable):"), command -> {
            String names = String.join("/", command.getNames());
            String name = command.getNames().get(0);
            ITextComponent shortDescComponent = new TextComponentString(" - " + command.getShortDesc());
            shortDescComponent.getStyle().setColor(TextFormatting.DARK_GRAY);
            ITextComponent namesComponent = new TextComponentString(names);
            namesComponent.getStyle().setColor(TextFormatting.WHITE);
            ITextComponent hoverComponent = new TextComponentString("");
            hoverComponent.getStyle().setColor(TextFormatting.GRAY);
            hoverComponent.appendSibling(namesComponent);
            hoverComponent.appendText("\n" + command.getShortDesc());
            hoverComponent.appendText("\n\nClick to view full help");
            String clickCommand = FORCE_COMMAND_PREFIX + String.format("%s %s", label, command.getNames().get(0));
            ITextComponent component = new TextComponentString(name);
            component.getStyle().setColor(TextFormatting.GRAY);
            component.appendSibling(shortDescComponent);
            component.getStyle().setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, hoverComponent)).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, clickCommand));
            return component;
        }, FORCE_COMMAND_PREFIX + label);
    } else {
        String commandName = args.getString().toLowerCase();
        ICommand command = this.baritone.getCommandManager().getCommand(commandName);
        if (command == null) {
            throw new CommandNotFoundException(commandName);
        }
        logDirect(String.format("%s - %s", String.join(" / ", command.getNames()), command.getShortDesc()));
        logDirect("");
        command.getLongDesc().forEach(this::logDirect);
        logDirect("");
        ITextComponent returnComponent = new TextComponentString("Click to return to the help menu");
        returnComponent.getStyle().setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, FORCE_COMMAND_PREFIX + label));
        logDirect(returnComponent);
    }
}
Also used : Arrays(java.util.Arrays) CommandNotFoundException(baritone.api.command.exception.CommandNotFoundException) TabCompleteHelper(baritone.api.command.helpers.TabCompleteHelper) Command(baritone.api.command.Command) CommandException(baritone.api.command.exception.CommandException) TextFormatting(net.minecraft.util.text.TextFormatting) Paginator(baritone.api.command.helpers.Paginator) ClickEvent(net.minecraft.util.text.event.ClickEvent) IArgConsumer(baritone.api.command.argument.IArgConsumer) Collectors(java.util.stream.Collectors) FORCE_COMMAND_PREFIX(baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX) ITextComponent(net.minecraft.util.text.ITextComponent) TextComponentString(net.minecraft.util.text.TextComponentString) IBaritone(baritone.api.IBaritone) List(java.util.List) Stream(java.util.stream.Stream) HoverEvent(net.minecraft.util.text.event.HoverEvent) ICommand(baritone.api.command.ICommand) HoverEvent(net.minecraft.util.text.event.HoverEvent) ICommand(baritone.api.command.ICommand) ClickEvent(net.minecraft.util.text.event.ClickEvent) ITextComponent(net.minecraft.util.text.ITextComponent) TextComponentString(net.minecraft.util.text.TextComponentString) CommandNotFoundException(baritone.api.command.exception.CommandNotFoundException) TextComponentString(net.minecraft.util.text.TextComponentString)

Example 3 with ICommand

use of baritone.api.command.ICommand in project Spark-Client by Spark-Client-Development.

the class CommandManager method from.

private ExecutionWrapper from(Tuple<String, List<ICommandArgument>> expanded) {
    String label = expanded.getFirst();
    ArgConsumer args = new ArgConsumer(this, expanded.getSecond());
    ICommand command = this.getCommand(label);
    return command == null ? null : new ExecutionWrapper(command, label, args);
}
Also used : ICommand(baritone.api.command.ICommand) ArgConsumer(baritone.command.argument.ArgConsumer)

Example 4 with ICommand

use of baritone.api.command.ICommand in project baritone by cabaletta.

the class CommandManager method from.

private ExecutionWrapper from(Tuple<String, List<ICommandArgument>> expanded) {
    String label = expanded.getFirst();
    ArgConsumer args = new ArgConsumer(this, expanded.getSecond());
    ICommand command = this.getCommand(label);
    return command == null ? null : new ExecutionWrapper(command, label, args);
}
Also used : ICommand(baritone.api.command.ICommand) ArgConsumer(baritone.command.argument.ArgConsumer)

Aggregations

ICommand (baritone.api.command.ICommand)4 IBaritone (baritone.api.IBaritone)2 Command (baritone.api.command.Command)2 FORCE_COMMAND_PREFIX (baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX)2 IArgConsumer (baritone.api.command.argument.IArgConsumer)2 CommandException (baritone.api.command.exception.CommandException)2 CommandNotFoundException (baritone.api.command.exception.CommandNotFoundException)2 Paginator (baritone.api.command.helpers.Paginator)2 TabCompleteHelper (baritone.api.command.helpers.TabCompleteHelper)2 ArgConsumer (baritone.command.argument.ArgConsumer)2 Arrays (java.util.Arrays)2 List (java.util.List)2 Collectors (java.util.stream.Collectors)2 Stream (java.util.stream.Stream)2 ITextComponent (net.minecraft.util.text.ITextComponent)2 TextComponentString (net.minecraft.util.text.TextComponentString)2 TextFormatting (net.minecraft.util.text.TextFormatting)2 ClickEvent (net.minecraft.util.text.event.ClickEvent)2 HoverEvent (net.minecraft.util.text.event.HoverEvent)2