Fix BasicCommand suggestion arg count
Resolves: #11211 Backport-of: #11241
This commit is contained in:
parent
6e71f41536
commit
e61b73f740
1 changed files with 9 additions and 3 deletions
|
@ -686,10 +686,10 @@ index 0000000000000000000000000000000000000000..1b1642f306771f029e6214a2e2ebebb6
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java b/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java
|
diff --git a/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java b/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..27509813a90980be1dfc7bde27d0eba60adfc820
|
index 0000000000000000000000000000000000000000..c0d2268c6f79bad107a490f8fa1c746a6a96b573
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java
|
+++ b/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java
|
||||||
@@ -0,0 +1,193 @@
|
@@ -0,0 +1,199 @@
|
||||||
+package io.papermc.paper.command.brigadier;
|
+package io.papermc.paper.command.brigadier;
|
||||||
+
|
+
|
||||||
+import com.google.common.base.Preconditions;
|
+import com.google.common.base.Preconditions;
|
||||||
|
@ -710,6 +710,7 @@ index 0000000000000000000000000000000000000000..27509813a90980be1dfc7bde27d0eba6
|
||||||
+import java.util.Locale;
|
+import java.util.Locale;
|
||||||
+import java.util.Set;
|
+import java.util.Set;
|
||||||
+import net.minecraft.commands.CommandBuildContext;
|
+import net.minecraft.commands.CommandBuildContext;
|
||||||
|
+import org.apache.commons.lang3.ArrayUtils;
|
||||||
+import org.apache.commons.lang3.StringUtils;
|
+import org.apache.commons.lang3.StringUtils;
|
||||||
+import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
+import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||||
+import org.checkerframework.checker.nullness.qual.NonNull;
|
+import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
|
@ -863,7 +864,12 @@ index 0000000000000000000000000000000000000000..27509813a90980be1dfc7bde27d0eba6
|
||||||
+ .then(
|
+ .then(
|
||||||
+ Commands.argument("args", StringArgumentType.greedyString())
|
+ Commands.argument("args", StringArgumentType.greedyString())
|
||||||
+ .suggests((context, suggestionsBuilder) -> {
|
+ .suggests((context, suggestionsBuilder) -> {
|
||||||
+ final String[] args = StringUtils.split(suggestionsBuilder.getRemaining());
|
+ String[] args = StringUtils.split(suggestionsBuilder.getRemaining());
|
||||||
|
+ if (suggestionsBuilder.getRemaining().endsWith(" ")) {
|
||||||
|
+ // if there is trailing whitespace, we should add an empty argument to signify
|
||||||
|
+ // that there may be more, but no characters have been typed yet
|
||||||
|
+ args = ArrayUtils.add(args, "");
|
||||||
|
+ }
|
||||||
+ final SuggestionsBuilder offsetSuggestionsBuilder = suggestionsBuilder.createOffset(suggestionsBuilder.getInput().lastIndexOf(' ') + 1);;
|
+ final SuggestionsBuilder offsetSuggestionsBuilder = suggestionsBuilder.createOffset(suggestionsBuilder.getInput().lastIndexOf(' ') + 1);;
|
||||||
+
|
+
|
||||||
+ final Collection<String> suggestions = basicCommand.suggest(context.getSource(), args);
|
+ final Collection<String> suggestions = basicCommand.suggest(context.getSource(), args);
|
||||||
|
|
Loading…
Reference in a new issue