SteamWar/SpigotCore
Archiviert
13
0

Add SWCommand.tabComplete repeatable

Dieser Commit ist enthalten in:
jojo 2020-12-30 17:38:14 +01:00
Ursprung 3f9850ce26
Commit fc31501926

Datei anzeigen

@ -65,12 +65,18 @@ public class SWCommand<T extends CommandSender> {
} }
public List<String> tabComplete(String[] args) { public List<String> tabComplete(String[] args) {
if (args.length > arguments.length) return new ArrayList<>(); if (args.length > arguments.length && !lastArgRepeatable) {
for (int i = 0; i < args.length - 1; i++) { return new ArrayList<>();
}
for (int i = 0; i < Math.min(args.length - 1, arguments.length - 1); i++) {
if (!arguments[i].valueSupplier(args[i]).isPresent()) return new ArrayList<>(); if (!arguments[i].valueSupplier(args[i]).isPresent()) return new ArrayList<>();
} }
int index = args.length - 1; if (lastArgRepeatable) {
return arguments[index].tabCompleteSupplier(args[index]).orElseGet(ArrayList::new); for (int i = arguments.length; i < args.length; i++) {
if (!arguments[arguments.length - 1].valueSupplier(args[i]).isPresent()) return new ArrayList<>();
}
}
return arguments[arguments.length - 1].tabCompleteSupplier(args[args.length - 1]).orElseGet(ArrayList::new);
} }
public static <T extends CommandSender> boolean execute(List<SWCommand<T>> swCommandList, T sender, String[] args) { public static <T extends CommandSender> boolean execute(List<SWCommand<T>> swCommandList, T sender, String[] args) {