31 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/com/mojang/brigadier/CommandDispatcher.java
 | 
						|
+++ b/src/main/java/com/mojang/brigadier/CommandDispatcher.java
 | 
						|
@@ -0,0 +0,0 @@ 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;
 | 
						|
         }
 | 
						|
 
 |