mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-31 12:03:27 +01:00
Fix HelpCommand searching (#11066)
Prevent a IOB exception when querying topic suggestions on query string `/`. Additionally hide help topics indices if no topics are visible to the player requesting them.
This commit is contained in:
parent
656cc3915f
commit
137019f867
1 changed files with 46 additions and 0 deletions
46
patches/api/Fix-HelpCommand-searching.patch
Normal file
46
patches/api/Fix-HelpCommand-searching.patch
Normal file
|
@ -0,0 +1,46 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Tamion <70228790+notTamion@users.noreply.github.com>
|
||||
Date: Sat, 13 Jul 2024 18:00:37 +0200
|
||||
Subject: [PATCH] Fix HelpCommand searching
|
||||
|
||||
Prevent index out of bounds exception when finding possible matches in
|
||||
the help topics.
|
||||
A general empty string is caught and directed to the defaultTopic by
|
||||
getHelpTopic(). #findPossibleMatches hence should not concern itself
|
||||
with possible empty strings anymore.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/command/defaults/HelpCommand.java b/src/main/java/org/bukkit/command/defaults/HelpCommand.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/command/defaults/HelpCommand.java
|
||||
+++ b/src/main/java/org/bukkit/command/defaults/HelpCommand.java
|
||||
@@ -0,0 +0,0 @@ public class HelpCommand extends BukkitCommand {
|
||||
searchString = searchString.substring(1);
|
||||
}
|
||||
|
||||
+ if (searchString.isEmpty()) return null; // Paper - prevent index out of bounds - nothing matches an empty search string, should have been special cased to defaultTopic earlier, just return null.
|
||||
for (HelpTopic topic : Bukkit.getServer().getHelpMap().getHelpTopics()) {
|
||||
String trimmedTopic = topic.getName().startsWith("/") ? topic.getName().substring(1) : topic.getName();
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/help/IndexHelpTopic.java b/src/main/java/org/bukkit/help/IndexHelpTopic.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/help/IndexHelpTopic.java
|
||||
+++ b/src/main/java/org/bukkit/help/IndexHelpTopic.java
|
||||
@@ -0,0 +0,0 @@ public class IndexHelpTopic extends HelpTopic {
|
||||
if (sender instanceof ConsoleCommandSender) {
|
||||
return true;
|
||||
}
|
||||
- if (permission == null) {
|
||||
- return true;
|
||||
+ // Paper start - Fix HelpCommand searching - do not show index if no topic is visible to the sender
|
||||
+ if (permission != null && !sender.hasPermission(permission)) return false; // old spigot permission check
|
||||
+
|
||||
+ for (HelpTopic topic : allTopics) {
|
||||
+ if (topic.canSee(sender)) return true;
|
||||
}
|
||||
- return sender.hasPermission(permission);
|
||||
+
|
||||
+ return false;
|
||||
+ // Paper end - Fix HelpCommand searching - do not show index if no topic is visible to the sender
|
||||
}
|
||||
|
||||
@Override
|
Loading…
Add table
Reference in a new issue