Add "literal" helper method to command builder

This commit is contained in:
Alexander Söderberg 2020-09-17 14:56:07 +02:00
parent fb1f609c7f
commit 8190c96d1c
No known key found for this signature in database
GPG key ID: C0207FF7EA146678
4 changed files with 21 additions and 12 deletions

View file

@ -253,6 +253,18 @@ public class Command<C, M extends CommandMeta> {
this.commandExecutionHandler, this.commandPermission);
}
/**
* Inserts a required {@link StaticArgument} into the command chain
*
* @param main Main argument name
* @param aliases Argument aliases
* @return New builder instance with the modified command chain
*/
@Nonnull
public Builder<C, M> literal(@Nonnull final String main, @Nonnull final String... aliases) {
return this.argument(StaticArgument.required(main, aliases));
}
/**
* Add a new command argument to the command
*

View file

@ -23,7 +23,6 @@
//
package com.intellectualsites.commands;
import com.intellectualsites.commands.arguments.StaticArgument;
import com.intellectualsites.commands.arguments.standard.EnumArgument;
import com.intellectualsites.commands.arguments.standard.StringArgument;
import com.intellectualsites.commands.meta.SimpleCommandMeta;
@ -42,10 +41,10 @@ public class CommandSuggestionsTest {
@BeforeAll
static void setupManager() {
manager = new TestCommandManager();
manager.command(manager.commandBuilder("test").argument(StaticArgument.required("one")).build());
manager.command(manager.commandBuilder("test").argument(StaticArgument.required("two")).build());
manager.command(manager.commandBuilder("test").literal("one").build());
manager.command(manager.commandBuilder("test").literal("two").build());
manager.command(manager.commandBuilder("test")
.argument(StaticArgument.required("var"))
.literal("var")
.argument(StringArgument.<TestCommandSender>newBuilder("str")
.withSuggestionsProvider((c, s) -> Arrays.asList("one", "two"))
.build())

View file

@ -23,7 +23,6 @@
//
package com.intellectualsites.commands;
import com.intellectualsites.commands.arguments.StaticArgument;
import com.intellectualsites.commands.arguments.standard.IntegerArgument;
import com.intellectualsites.commands.context.CommandContext;
import com.intellectualsites.commands.exceptions.NoPermissionException;
@ -47,12 +46,12 @@ class CommandTreeTest {
static void newTree() {
manager = new TestCommandManager();
manager.command(manager.commandBuilder("test", SimpleCommandMeta.empty())
.argument(StaticArgument.required("one")).build())
.literal("one").build())
.command(manager.commandBuilder("test", SimpleCommandMeta.empty())
.argument(StaticArgument.required("two")).withPermission("no").build())
.literal("two").withPermission("no").build())
.command(manager.commandBuilder("test", Collections.singleton("other"),
SimpleCommandMeta.empty())
.argument(StaticArgument.required("opt", "öpt"))
.literal("opt", "öpt")
.argument(IntegerArgument
.optional("num", EXPECTED_INPUT_NUMBER))
.build())