From f37aaef3818762d7a7d30997f27566b7e08da8a3 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 21 Apr 2017 19:58:48 -0400 Subject: [PATCH] fix bug with default method with params --- .../co/aikar/commands/RegisteredCommand.java | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main/java/co/aikar/commands/RegisteredCommand.java b/src/main/java/co/aikar/commands/RegisteredCommand.java index dedfea18..ed0f904a 100644 --- a/src/main/java/co/aikar/commands/RegisteredCommand.java +++ b/src/main/java/co/aikar/commands/RegisteredCommand.java @@ -146,28 +146,27 @@ public class RegisteredCommand { scope.showSyntax(sender, this); return; } - } else { - final Values values = parameter.getAnnotation(Values.class); - if (values != null) { - String arg = args.get(0); + } + final Values values = parameter.getAnnotation(Values.class); + if (values != null) { + String arg = args.get(0); - final String[] split = CommandPatterns.PIPE.split(values.value()); - Set possible = Sets.newHashSet(); - for (String s : split) { - List check = this.scope.manager.getCommandCompletions().of(sender, s, arg); - if (!check.isEmpty()) { - possible.addAll(check.stream().map(String::toLowerCase).collect(Collectors.toList())); - } else { - possible.add(s.toLowerCase()); - } - } - - if (!possible.contains(arg.toLowerCase())) { - throw new InvalidCommandArgument("Must be one of: " + CommandUtil.join(possible, ", ")); + final String[] split = CommandPatterns.PIPE.split(values.value()); + Set possible = Sets.newHashSet(); + for (String s : split) { + List check = this.scope.manager.getCommandCompletions().of(sender, s, arg); + if (!check.isEmpty()) { + possible.addAll(check.stream().map(String::toLowerCase).collect(Collectors.toList())); + } else { + possible.add(s.toLowerCase()); } } - passedArgs.put(parameterName, resolver.getContext(context)); + + if (!possible.contains(arg.toLowerCase())) { + throw new InvalidCommandArgument("Must be one of: " + CommandUtil.join(possible, ", ")); + } } + passedArgs.put(parameterName, resolver.getContext(context)); } method.invoke(scope, passedArgs.values().toArray());