Skip to content

Commit bea8e72

Browse files
fixed bug to do with tab completing multi-space arguments
1 parent 2582628 commit bea8e72

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/main/java/com/datasiqn/commandcore/MainCommand.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import org.bukkit.command.CommandExecutor;
1111
import org.bukkit.command.CommandSender;
1212
import org.bukkit.command.TabCompleter;
13-
import org.bukkit.util.StringUtil;
1413
import org.jetbrains.annotations.NotNull;
1514
import org.jetbrains.annotations.Nullable;
1615

@@ -75,7 +74,18 @@ public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull org.bu
7574
}
7675

7776
List<String> partialMatches = new ArrayList<>();
78-
StringUtil.copyPartialMatches(matchingString, tabComplete, partialMatches);
77+
int spaces = 0;
78+
for (char c : matchingString.toCharArray()) if (c == ' ') spaces++;
79+
for (String match : tabComplete) {
80+
if (!match.startsWith(matchingString)) continue;
81+
int substringIndex;
82+
char[] charArray = match.toCharArray();
83+
for (substringIndex = 0; substringIndex < charArray.length; substringIndex++) {
84+
if (spaces == 0) break;
85+
if (charArray[substringIndex] == ' ') spaces--;
86+
}
87+
partialMatches.add(match.substring(substringIndex));
88+
}
7989
partialMatches.sort(Comparator.naturalOrder());
8090

8191
return partialMatches;

0 commit comments

Comments
 (0)