Skip to content

Tab-Completion Builder

Um eine Tab-Completion zur Verfügung zu stellen, kann das weiterhin manuell getan werden oder mit einem TabCompletionBuilder.

Dieser kann in der UnicacityCommand#copmlete(String[]) Methode als Rückgabewert eingefügt werden:

@Override
public List<String> complete(String[] arguments) {
    return TabCompletionBuilder.getBuilder(this.unicacityAddon, arguments)
            .addAtIndex(1, myList1)
            .addAtIndex(2, myList2)
            .addToAllFromIndex(2, myList3)
            .build();
}

Als Parameter für den Builder müssen die Addon Instance und der arguments Parameter übergeben werden. Für den TabCompletionBuilder gibt es zwei Haupt-Methoden:

  • addAtIndex - Fügt für einen bestimmten Index mögliche Tab Completions hinzu.
  • addToAllFromIndex - Fügt ab einem bestimmten Index mögliche Tab Completions hinzu.

Im oberen Code-Ausschnitt wird nach der Eingabe des Commands (z. B. /tp) für den ersten Parameter alle Werte aus myList1 als Vervollständigung vorgeschlagen. Wenn dieser Parameter gesetzt wurde, werden anschließend für den zweiten Parameter alle Werte aus myList2 und myList3 vorgeschlagen. Als dritten Parameter werden alle Werte aus myList3 vorgeschlagen, da der Inhalt dieser Liste ab einschließlich Index 2 an alle Parameter gegeben wird.