Add SWCommand.tabComplete repeatable
Dieser Commit ist enthalten in:
Ursprung
3f9850ce26
Commit
fc31501926
@ -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) {
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren