Improve Command Completions!

This commit is contained in:
Aikar
2017-04-29 21:15:00 -04:00
parent d6562ab1b3
commit f127cc874f
2 changed files with 10 additions and 11 deletions
@@ -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) {