Register each alias as individual subcommand
such that brigadier can properly autocomplete / highlight
This commit is contained in:
parent
51df8e35f1
commit
3589d9870e
3 changed files with 35 additions and 21 deletions
|
|
@ -78,17 +78,17 @@ public class BukkitCommandServerUtils extends CommandServerUtils<BukkitPlugin, P
|
||||||
.withSuggestionsProvider((context, s) -> supportedConfigNames)
|
.withSuggestionsProvider((context, s) -> supportedConfigNames)
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
manager.command(buildSubcommand(builder, "enableplugin")
|
registerSubcommand(manager, builder, "enableplugin", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(getArgument("plugins"))
|
.argument(getArgument("plugins"))
|
||||||
.handler(this::handleEnablePlugin));
|
.handler(this::handleEnablePlugin));
|
||||||
manager.command(buildSubcommand(builder, "disableplugin")
|
registerSubcommand(manager, builder, "disableplugin", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(new PluginsArgument<>(
|
.argument(new PluginsArgument<>(
|
||||||
true,
|
true,
|
||||||
"plugins",
|
"plugins",
|
||||||
new PluginsArgument.PluginsParser<>(plugin, arrayCreator, getRawPath("disableplugin"))
|
new PluginsArgument.PluginsParser<>(plugin, arrayCreator, getRawPath("disableplugin"))
|
||||||
))
|
))
|
||||||
.handler(this::handleDisablePlugin));
|
.handler(this::handleDisablePlugin));
|
||||||
manager.command(buildSubcommand(builder, "reloadconfig")
|
registerSubcommand(manager, builder, "reloadconfig", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(getArgument("config"))
|
.argument(getArgument("config"))
|
||||||
.handler(this::handleReloadConfig));
|
.handler(this::handleReloadConfig));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,43 +56,43 @@ public abstract class CommandServerUtils<U extends ServerUtilsPlugin<P, ?, C, ?,
|
||||||
|
|
||||||
manager.command(builder
|
manager.command(builder
|
||||||
.handler(this::handleHelpCommand));
|
.handler(this::handleHelpCommand));
|
||||||
manager.command(buildSubcommand(builder, "help")
|
registerSubcommand(manager, builder, "help", subcommandBuilder -> subcommandBuilder
|
||||||
.handler(this::handleHelpCommand));
|
.handler(this::handleHelpCommand));
|
||||||
manager.command(buildSubcommand(builder, "reload")
|
registerSubcommand(manager, builder, "reload", subcommandBuilder -> subcommandBuilder
|
||||||
.handler(this::handleReload));
|
.handler(this::handleReload));
|
||||||
manager.command(buildSubcommand(builder, "restart")
|
registerSubcommand(manager, builder, "restart", subcommandBuilder -> subcommandBuilder
|
||||||
.handler(this::handleRestart));
|
.handler(this::handleRestart));
|
||||||
manager.command(buildSubcommand(builder, "loadplugin")
|
registerSubcommand(manager, builder, "loadplugin", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(getArgument("jarFiles"))
|
.argument(getArgument("jarFiles"))
|
||||||
.handler(this::handleLoadPlugin));
|
.handler(this::handleLoadPlugin));
|
||||||
manager.command(buildSubcommand(builder, "unloadplugin")
|
registerSubcommand(manager, builder, "unloadplugin", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(new PluginsArgument<>(
|
.argument(new PluginsArgument<>(
|
||||||
true,
|
true,
|
||||||
"plugins",
|
"plugins",
|
||||||
new PluginsArgument.PluginsParser<>(plugin, arrayCreator, getRawPath("unloadplugin"))
|
new PluginsArgument.PluginsParser<>(plugin, arrayCreator, getRawPath("unloadplugin"))
|
||||||
))
|
))
|
||||||
.handler(this::handleUnloadPlugin));
|
.handler(this::handleUnloadPlugin));
|
||||||
manager.command(buildSubcommand(builder, "reloadplugin")
|
registerSubcommand(manager, builder, "reloadplugin", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(new PluginsArgument<>(
|
.argument(new PluginsArgument<>(
|
||||||
true,
|
true,
|
||||||
"plugins",
|
"plugins",
|
||||||
new PluginsArgument.PluginsParser<>(plugin, arrayCreator, getRawPath("reloadplugin"))
|
new PluginsArgument.PluginsParser<>(plugin, arrayCreator, getRawPath("reloadplugin"))
|
||||||
))
|
))
|
||||||
.handler(this::handleReloadPlugin));
|
.handler(this::handleReloadPlugin));
|
||||||
manager.command(buildSubcommand(builder, "watchplugin")
|
registerSubcommand(manager, builder, "watchplugin", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(new PluginsArgument<>(
|
.argument(new PluginsArgument<>(
|
||||||
true,
|
true,
|
||||||
"plugins",
|
"plugins",
|
||||||
new PluginsArgument.PluginsParser<>(plugin, arrayCreator, getRawPath("watchplugin"))
|
new PluginsArgument.PluginsParser<>(plugin, arrayCreator, getRawPath("watchplugin"))
|
||||||
))
|
))
|
||||||
.handler(this::handleWatchPlugin));
|
.handler(this::handleWatchPlugin));
|
||||||
manager.command(buildSubcommand(builder, "unwatchplugin")
|
registerSubcommand(manager, builder, "unwatchplugin", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(getArgument("plugin"))
|
.argument(getArgument("plugin"))
|
||||||
.handler(this::handleUnwatchPlugin));
|
.handler(this::handleUnwatchPlugin));
|
||||||
manager.command(buildSubcommand(builder, "plugininfo")
|
registerSubcommand(manager, builder, "plugininfo", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(getArgument("plugin"))
|
.argument(getArgument("plugin"))
|
||||||
.handler(this::handlePluginInfo));
|
.handler(this::handlePluginInfo));
|
||||||
manager.command(buildSubcommand(builder, "commandinfo")
|
registerSubcommand(manager, builder, "commandinfo", subcommandBuilder -> subcommandBuilder
|
||||||
.argument(getArgument("command"))
|
.argument(getArgument("command"))
|
||||||
.handler(this::handleCommandInfo));
|
.handler(this::handleCommandInfo));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,12 @@ import cloud.commandframework.arguments.flags.CommandFlag;
|
||||||
import cloud.commandframework.permission.CommandPermission;
|
import cloud.commandframework.permission.CommandPermission;
|
||||||
import cloud.commandframework.permission.Permission;
|
import cloud.commandframework.permission.Permission;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.UnaryOperator;
|
||||||
|
import java.util.stream.Stream;
|
||||||
import net.frankheijden.serverutils.common.config.ServerUtilsConfig;
|
import net.frankheijden.serverutils.common.config.ServerUtilsConfig;
|
||||||
import net.frankheijden.serverutils.common.entities.ServerUtilsAudience;
|
import net.frankheijden.serverutils.common.entities.ServerUtilsAudience;
|
||||||
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
|
import net.frankheijden.serverutils.common.entities.ServerUtilsPlugin;
|
||||||
|
|
@ -58,16 +61,27 @@ public abstract class ServerUtilsCommand<U extends ServerUtilsPlugin<?, ?, C, ?,
|
||||||
/**
|
/**
|
||||||
* Builds a subcommand from the config.
|
* Builds a subcommand from the config.
|
||||||
*/
|
*/
|
||||||
public Command.Builder<C> buildSubcommand(Command.Builder<C> builder, String subcommandName) {
|
public void registerSubcommand(
|
||||||
|
CommandManager<C> manager,
|
||||||
|
Command.Builder<C> builder,
|
||||||
|
String subcommandName,
|
||||||
|
UnaryOperator<Command.Builder<C>> builderUnaryOperator
|
||||||
|
) {
|
||||||
CommandElement subcommand = parseSubcommand(subcommandName);
|
CommandElement subcommand = parseSubcommand(subcommandName);
|
||||||
|
|
||||||
builder = builder
|
Stream.concat(
|
||||||
.literal(subcommand.getMain(), subcommand.getDescription(), subcommand.getAliases())
|
Stream.of(subcommand.getMain()),
|
||||||
|
Arrays.stream(subcommand.getAliases())
|
||||||
|
).map(cmd -> {
|
||||||
|
Command.Builder<C> subcommandBuilder = builder
|
||||||
|
.literal(cmd, subcommand.getDescription())
|
||||||
.permission(subcommand.getPermission());
|
.permission(subcommand.getPermission());
|
||||||
for (CommandElement flagElement : subcommand.getFlags()) {
|
for (CommandElement flagElement : subcommand.getFlags()) {
|
||||||
builder = builder.flag(createFlag(flagElement));
|
subcommandBuilder = subcommandBuilder.flag(createFlag(flagElement));
|
||||||
}
|
}
|
||||||
return builder;
|
|
||||||
|
return builderUnaryOperator.apply(subcommandBuilder).build();
|
||||||
|
}).forEach(manager::command);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue