SteamWar/SpigotCore
Archiviert
13
0

Add SubCommand.tabComplete

Dieser Commit ist enthalten in:
yoyosource 2021-03-25 19:52:27 +01:00
Ursprung ae26f2837d
Commit ed0ee1b0a7

Datei anzeigen

@ -21,10 +21,13 @@ package de.steamwar.command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.lang.reflect.Parameter; import java.lang.reflect.Parameter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
@ -103,8 +106,33 @@ class SubCommand {
} }
List<String> tabComplete(CommandSender commandSender, String[] args) { List<String> tabComplete(CommandSender commandSender, String[] args) {
// TODO: implement tabCompleting for SubCommand List<String> argsList = Arrays.asList(args);
return null; for (int i = 0; i < subCommand.length; i++) {
String s = argsList.remove(0);
if (argsList.isEmpty()) return Collections.singletonList(subCommand[i]);
if (!subCommand[i].equals(s)) return Collections.emptyList();
}
for (int i = 0; i < arguments.length; i++) {
String s = argsList.remove(0);
if (argsList.isEmpty()) return arguments[i].tabCompletes(s);
try {
arguments[i].map(s);
} catch (Exception e) {
return Collections.emptyList();
}
}
if (varArgs && !argsList.isEmpty()) {
while (!argsList.isEmpty()) {
String s = argsList.remove(0);
if (argsList.isEmpty()) return arguments[arguments.length - 1].tabCompletes(s);
try {
arguments[arguments.length - 1].map(s);
} catch (Exception e) {
return Collections.emptyList();
}
}
}
return Collections.emptyList();
} }
} }