mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-22 17:07:34 +01:00
Fix command suggestion leak (#6592)
Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
This commit is contained in:
parent
5553432644
commit
a1f49e4c60
@ -0,0 +1,31 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: stonar96 <minecraft.stonar96@gmail.com>
|
||||||
|
Date: Sun, 12 Sep 2021 00:14:21 +0200
|
||||||
|
Subject: [PATCH] Check requirement before suggesting root nodes
|
||||||
|
|
||||||
|
Child nodes are handled by CommandDispatcher#parse checking
|
||||||
|
requirements.
|
||||||
|
|
||||||
|
Vanilla clients only send ServerboundCommandSuggestionPacket when
|
||||||
|
encountering a command node with ASK_SERVER suggestions, however a
|
||||||
|
modified client can send this packet whenever it wants.
|
||||||
|
|
||||||
|
diff --git a/src/main/java/com/mojang/brigadier/CommandDispatcher.java b/src/main/java/com/mojang/brigadier/CommandDispatcher.java
|
||||||
|
index ca24830bac1a04b798229d1946863429c7849495..5584040fe48c18aa809f5a1510157e735851df79 100644
|
||||||
|
--- a/src/main/java/com/mojang/brigadier/CommandDispatcher.java
|
||||||
|
+++ b/src/main/java/com/mojang/brigadier/CommandDispatcher.java
|
||||||
|
@@ -594,10 +594,14 @@ public class CommandDispatcher<S> {
|
||||||
|
int i = 0;
|
||||||
|
for (final CommandNode<S> node : parent.getChildren()) {
|
||||||
|
CompletableFuture<Suggestions> future = Suggestions.empty();
|
||||||
|
+ // Paper start - Don't suggest if the requirement isn't met
|
||||||
|
+ if (parent != this.root || node.canUse(context.getSource())) {
|
||||||
|
try {
|
||||||
|
future = node.listSuggestions(context.build(truncatedInput), new SuggestionsBuilder(truncatedInput, truncatedInputLowerCase, start));
|
||||||
|
} catch (final CommandSyntaxException ignored) {
|
||||||
|
}
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
futures[i++] = future;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: stonar96 <minecraft.stonar96@gmail.com>
|
||||||
|
Date: Sun, 12 Sep 2021 00:14:21 +0200
|
||||||
|
Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when
|
||||||
|
tab-complete is disabled
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
index 5d7c47b0a302f7db95a0b2bb811c5656c6b02beb..7bf03b78a26b6a697a8d10e8832703421f96b2bb 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
@@ -796,6 +796,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
// CraftBukkit end
|
||||||
|
+ // Paper start - Don't suggest if tab-complete is disabled
|
||||||
|
+ if (org.spigotmc.SpigotConfig.tabComplete < 0) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
StringReader stringreader = new StringReader(packet.getCommand());
|
||||||
|
|
||||||
|
if (stringreader.canRead() && stringreader.peek() == '/') {
|
Loading…
Reference in New Issue
Block a user