mirror of
https://github.com/aikar/commands.git
synced 2026-06-30 18:28:26 +00:00
Improve Command Completions!
This commit is contained in:
@@ -347,15 +347,14 @@ public abstract class BaseCommand extends Command {
|
||||
|
||||
final CommandSearch search = findSubCommand(args, true);
|
||||
|
||||
if (search != null) {
|
||||
args = Arrays.copyOfRange(args, search.argIndex, args.length);
|
||||
return completeCommand(sender, search.cmd, args, commandLabel);
|
||||
}
|
||||
|
||||
String argString = StringUtils.join(args, " ").toLowerCase();
|
||||
|
||||
final List<String> cmds = new ArrayList<>();
|
||||
|
||||
if (search != null) {
|
||||
cmds.addAll(completeCommand(sender, search.cmd, Arrays.copyOfRange(args, search.argIndex, args.length), commandLabel));
|
||||
}
|
||||
|
||||
for (Map.Entry<String, RegisteredCommand> entry : subCommands.entries()) {
|
||||
final String key = entry.getKey();
|
||||
if (key.startsWith(argString) && !"__unknown".equals(key) && !"__default".equals(key)) {
|
||||
|
||||
@@ -91,13 +91,13 @@ public class RegisteredCommand {
|
||||
if (resolver != null) {
|
||||
resolvers[i] = resolver;
|
||||
|
||||
if (resolver instanceof SenderAwareContextResolver || parameter.getAnnotation(Optional.class) != null
|
||||
|| parameter.getAnnotation(Default.class) != null) {
|
||||
optionalResolvers++;
|
||||
} else {
|
||||
nonSenderAwareResolvers++;
|
||||
}
|
||||
if (!CommandSender.class.isAssignableFrom(parameter.getType())) {
|
||||
if (resolver instanceof SenderAwareContextResolver || parameter.getAnnotation(Optional.class) != null
|
||||
|| parameter.getAnnotation(Default.class) != null) {
|
||||
optionalResolvers++;
|
||||
} else {
|
||||
nonSenderAwareResolvers++;
|
||||
}
|
||||
if (parameter.getAnnotation(Default.class) != null ||
|
||||
parameter.getAnnotation(Optional.class) != null ||
|
||||
resolver instanceof SenderAwareContextResolver) {
|
||||
|
||||
Reference in New Issue
Block a user