diff --git a/src/main/java/me/alpha432/oyvey/features/commands/CommandModule.java b/src/main/java/me/alpha432/oyvey/features/commands/CommandModule.java index ad7391a..a298464 100644 --- a/src/main/java/me/alpha432/oyvey/features/commands/CommandModule.java +++ b/src/main/java/me/alpha432/oyvey/features/commands/CommandModule.java @@ -91,7 +91,7 @@ public class CommandModule extends Command { builder.then(literal(setting.getName().toLowerCase()) .then(argument("value", number(type, minMax(setting.getMin(), setting.getMax()))) .executes((ctx) -> { - setting.setValue(getNumber(type, ctx, "value")); + setting.setValue(get(type, ctx, "value")); return settingChangeReturn(setting); }))); } diff --git a/src/main/java/me/alpha432/oyvey/features/commands/argument/NumberArgumentType.java b/src/main/java/me/alpha432/oyvey/features/commands/argument/NumberArgumentType.java index 30b3b1a..8099cd9 100644 --- a/src/main/java/me/alpha432/oyvey/features/commands/argument/NumberArgumentType.java +++ b/src/main/java/me/alpha432/oyvey/features/commands/argument/NumberArgumentType.java @@ -49,7 +49,7 @@ public record NumberArgumentType(Class type, Constraint }; } - public static T getNumber(Class type, CommandContext ctx, String name) { + public static T get(Class type, CommandContext ctx, String name) { return ctx.getArgument(name, type); } diff --git a/src/main/java/me/alpha432/oyvey/features/commands/impl/HelpCommand.java b/src/main/java/me/alpha432/oyvey/features/commands/impl/HelpCommand.java index 5121f25..3ce8ac4 100644 --- a/src/main/java/me/alpha432/oyvey/features/commands/impl/HelpCommand.java +++ b/src/main/java/me/alpha432/oyvey/features/commands/impl/HelpCommand.java @@ -3,6 +3,7 @@ package me.alpha432.oyvey.features.commands.impl; import com.google.common.collect.Iterables; import com.mojang.brigadier.ParseResults; import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.tree.CommandNode; import me.alpha432.oyvey.features.commands.Command; import me.alpha432.oyvey.manager.CommandManager; @@ -13,7 +14,7 @@ import java.util.StringJoiner; import static me.alpha432.oyvey.features.commands.argument.CommandArgumentType.command; import static me.alpha432.oyvey.features.commands.argument.CommandArgumentType.getCommand; -import static me.alpha432.oyvey.features.commands.argument.NumberArgumentType.getNumber; +import static me.alpha432.oyvey.features.commands.argument.NumberArgumentType.get; import static me.alpha432.oyvey.features.commands.argument.NumberArgumentType.number; public class HelpCommand extends Command { @@ -27,57 +28,56 @@ public class HelpCommand extends Command { @Override public void createArgumentBuilder(LiteralArgumentBuilder builder) { builder.then(argument("page", number(Integer.class)) - .executes((ctx) -> - helpCommand(getNumber(Integer.class, ctx, "page")).run(ctx))) + .executes((ctx) -> helpCommands(ctx, get(Integer.class, ctx, "page"))) .then(argument("command_name", command()) - .executes((ctx) -> { - Command command = getCommand(ctx, "command_name"); - sendMessage("Usages for %s:", command.getName()); - - ParseResults results = ctx.getSource().getDispatcher() - .parse(command.getName(), ctx.getSource()); - if (results.getContext().getNodes().isEmpty()) { - return success("No usages available"); - } - - Map, String> smartUsages = ctx.getSource().getDispatcher().getSmartUsage( - Iterables.getLast(results.getContext().getNodes()).getNode(), ctx.getSource()); - for (String usage : smartUsages.values()) { - sendMessage(".%s %s", results.getReader().getString(), usage); - } - - return success(); - })) - .executes((ctx) -> helpCommand(1).run(ctx)); + .executes(this::helpSpecific)) + .executes((ctx) -> helpCommands(ctx, 1))); } - private com.mojang.brigadier.Command helpCommand(int page) { - return (ctx) -> { - List commands = ctx.getSource().getCommands() - .stream().filter(Command::isShown).toList(); + private int helpSpecific(CommandContext ctx) { + Command command = getCommand(ctx, "command_name"); + sendMessage("Usages for %s:", command.getName()); - int pageIndex = page; - int pages = (int) Math.ceil((double) commands.size() / ITEMS_PER_PAGE); - if (pageIndex > pages) { - pageIndex = 1; + ParseResults results = ctx.getSource().getDispatcher() + .parse(command.getName(), ctx.getSource()); + if (results.getContext().getNodes().isEmpty()) { + return success("No usages available"); + } + + Map, String> smartUsages = ctx.getSource().getDispatcher().getSmartUsage( + Iterables.getLast(results.getContext().getNodes()).getNode(), ctx.getSource()); + for (String usage : smartUsages.values()) { + sendMessage(".%s %s", results.getReader().getString(), usage); + } + + return success(); + } + + private int helpCommands(CommandContext ctx, int page) { + List commands = ctx.getSource().getCommands() + .stream().filter(Command::isShown).toList(); + + int pageIndex = page; + int pages = (int) Math.ceil((double) commands.size() / ITEMS_PER_PAGE); + if (pageIndex > pages) { + pageIndex = 1; + } + + List paginated = commands.subList((pageIndex - 1) * ITEMS_PER_PAGE, + Math.min(commands.size(), pageIndex * ITEMS_PER_PAGE)); + + sendMessage("Commands (%s):", commands.size()); + + for (Command command : paginated) { + StringJoiner joiner = new StringJoiner(", "); + for (String alias : command.getAliases()) { + joiner.add(alias); } - List paginated = commands.subList((pageIndex - 1) * ITEMS_PER_PAGE, - Math.min(commands.size(), pageIndex * ITEMS_PER_PAGE)); + sendMessage("{dark_gray} %s: {reset}\n %s", + joiner, command.getDescription()); + } - sendMessage("Commands (%s):", commands.size()); - - for (Command command : paginated) { - StringJoiner joiner = new StringJoiner(", "); - for (String alias : command.getAliases()) { - joiner.add(alias); - } - - sendMessage("{dark_gray} %s: {reset}\n %s", - joiner, command.getDescription()); - } - - return success("Page %s/%s", pageIndex, pages); - }; + return success("Page %s/%s", pageIndex, pages); } }