/** * Complete a command properly per issuer and input. * * @param issuer * The user who executed this. * @param cmd * The command to be completed. * @param args * All arguments given by the user. * @param commandLabel * The command name the user used. * @param isAsync * Whether the command was executed async. * * @return All results to complete the command. */ private List<String> completeCommand(CommandIssuer issuer, RegisteredCommand cmd, String[] args, String commandLabel, boolean isAsync) { if (!cmd.hasPermission(issuer) || args.length > cmd.consumeInputResolvers || args.length == 0 || cmd.complete == null) { return Collections.emptyList(); } List<String> cmds = manager.getCommandCompletions().of(cmd, issuer, args, isAsync); return filterTabComplete(args[args.length-1], cmds); }
return filterTabComplete(args[args.length - 1], cmds); } finally { postCommandOperation();