From 2a3f4482a090f7c4d18946e38a9fa65451cbe30f Mon Sep 17 00:00:00 2001 From: PiggyPiglet Date: Tue, 3 Feb 2026 16:28:42 +0800 Subject: [PATCH] check for perms on all tab complete --- .../commands/PlaceholderCommandRouter.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommandRouter.java b/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommandRouter.java index adbb759..75ad9e1 100644 --- a/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommandRouter.java +++ b/src/main/java/me/clip/placeholderapi/commands/PlaceholderCommandRouter.java @@ -32,6 +32,7 @@ import java.util.Locale; import java.util.Map; import java.util.stream.Stream; +import com.google.common.collect.Lists; import me.clip.placeholderapi.PlaceholderAPIPlugin; import me.clip.placeholderapi.commands.impl.cloud.CommandECloud; import me.clip.placeholderapi.commands.impl.local.CommandDump; @@ -119,14 +120,18 @@ public final class PlaceholderCommandRouter implements CommandExecutor, TabCompl } @Override - public List onTabComplete(@NotNull final CommandSender sender, - @NotNull final Command command, @NotNull final String alias, @NotNull final String[] args) { + public List onTabComplete(@NotNull final CommandSender sender, @NotNull final Command command, + @NotNull final String alias, @NotNull final String[] args) { final List suggestions = new ArrayList<>(); if (args.length > 1) { final PlaceholderCommand target = this.commands.get(args[0].toLowerCase(Locale.ROOT)); if (target != null) { + if (target.getPermission() != null && target.getPermission().isEmpty() && !sender.hasPermission(target.getPermission())) { + return suggestions; + } + target.complete(plugin, sender, args[0].toLowerCase(Locale.ROOT), Arrays.asList(Arrays.copyOfRange(args, 1, args.length)), suggestions); }