Skip to content

Commit dd8c70a

Browse files
authored
Ensure TabCompleteEvent always has a mutable backing list. (#11302)
1 parent 374d9c8 commit dd8c70a

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

patches/api/0073-AsyncTabCompleteEvent.patch

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ and avoid going to main for tab completions.
1111
Especially useful if you need to query a database in order to obtain the results for tab
1212
completion, such as offline players.
1313

14+
Also Enforces mutability of the existing TabCompleteEvent.
15+
1416
Co-authored-by: Aikar <aikar@aikar.co>
1517

1618
diff --git a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java
@@ -534,10 +536,10 @@ index 0000000000000000000000000000000000000000..6f560a51277ccbd46a9142cfa057d276
534536
+ }
535537
+}
536538
diff --git a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java
537-
index 270e6d8ad4358baa256cee5f16cff281f063ce3b..b43c3cb5c88eada186d6f81712c244aaa18fb53e 100644
539+
index 270e6d8ad4358baa256cee5f16cff281f063ce3b..6465e290c090d82986352d5ab7ba5dc65bd3dc17 100644
538540
--- a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java
539541
+++ b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java
540-
@@ -29,6 +29,13 @@ public class TabCompleteEvent extends Event implements Cancellable {
542+
@@ -29,13 +29,20 @@ public class TabCompleteEvent extends Event implements Cancellable {
541543
private boolean cancelled;
542544

543545
public TabCompleteEvent(@NotNull CommandSender sender, @NotNull String buffer, @NotNull List<String> completions) {
@@ -551,6 +553,14 @@ index 270e6d8ad4358baa256cee5f16cff281f063ce3b..b43c3cb5c88eada186d6f81712c244aa
551553
Preconditions.checkArgument(sender != null, "sender");
552554
Preconditions.checkArgument(buffer != null, "buffer");
553555
Preconditions.checkArgument(completions != null, "completions");
556+
557+
this.sender = sender;
558+
this.buffer = buffer;
559+
- this.completions = completions;
560+
+ this.completions = new java.util.ArrayList<>(completions); // Paper - Completions must be mutable
561+
}
562+
563+
/**
554564
@@ -69,14 +76,35 @@ public class TabCompleteEvent extends Event implements Cancellable {
555565
return completions;
556566
}
@@ -584,7 +594,7 @@ index 270e6d8ad4358baa256cee5f16cff281f063ce3b..b43c3cb5c88eada186d6f81712c244aa
584594
public void setCompletions(@NotNull List<String> completions) {
585595
Preconditions.checkArgument(completions != null);
586596
- this.completions = completions;
587-
+ this.completions = new java.util.ArrayList<>(completions); // Paper
597+
+ this.completions = new java.util.ArrayList<>(completions); // Paper - completions must be mutable
588598
}
589599

590600
@Override

0 commit comments

Comments
 (0)