default List<String> getTabCompletions(CommandIssuer sender, String alias, String[] args, boolean commandsOnly) { Set<String> completions = new HashSet<>(); getChildren().forEach(child -> { if (!commandsOnly) { completions.addAll(child.tabComplete(sender, alias, args)); } completions.addAll(child.getCommandsForCompletion(sender, args)); }); return new ArrayList<>(completions); }