From fc315019263b01b8ff41467064c6d109879f9701 Mon Sep 17 00:00:00 2001 From: jojo Date: Wed, 30 Dec 2020 17:38:14 +0100 Subject: [PATCH] Add SWCommand.tabComplete repeatable --- .../src/de/steamwar/command/SWCommand.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/SpigotCore_Main/src/de/steamwar/command/SWCommand.java b/SpigotCore_Main/src/de/steamwar/command/SWCommand.java index 6c56ade..9192772 100644 --- a/SpigotCore_Main/src/de/steamwar/command/SWCommand.java +++ b/SpigotCore_Main/src/de/steamwar/command/SWCommand.java @@ -65,12 +65,18 @@ public class SWCommand { } public List tabComplete(String[] args) { - if (args.length > arguments.length) return new ArrayList<>(); - for (int i = 0; i < args.length - 1; i++) { + if (args.length > arguments.length && !lastArgRepeatable) { + 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<>(); } - int index = args.length - 1; - return arguments[index].tabCompleteSupplier(args[index]).orElseGet(ArrayList::new); + if (lastArgRepeatable) { + 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 boolean execute(List> swCommandList, T sender, String[] args) {