diff --git a/Plan/common/src/main/java/com/djrapitops/plan/commands/PlanCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/commands/PlanCommand.java index 1df9aac0d..1b14d582b 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/commands/PlanCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/commands/PlanCommand.java @@ -140,13 +140,21 @@ public class PlanCommand { } public List serverNames(CMDSender sender, @Untrusted Arguments arguments) { - @Untrusted String asString = arguments.concatenate(" "); - return tabCompleteCache.getMatchingServerIdentifiers(asString); + if (sender.hasPermission(Permissions.SERVER)) { + @Untrusted String asString = arguments.concatenate(" "); + return tabCompleteCache.getMatchingServerIdentifiers(asString); + } + return List.of(); } private List playerNames(CMDSender sender, @Untrusted Arguments arguments) { - @Untrusted String asString = arguments.concatenate(" "); - return tabCompleteCache.getMatchingPlayerIdentifiers(asString); + if (sender.hasPermission(Permissions.PLAYER_OTHER)) { + @Untrusted String asString = arguments.concatenate(" "); + return tabCompleteCache.getMatchingPlayerIdentifiers(asString); + } else if (sender.hasPermission(Permissions.PLAYER_SELF)) { + return sender.getPlayerName().map(List::of).orElse(List.of()); + } + return List.of(); } private Subcommand serverCommand() { @@ -403,6 +411,9 @@ public class PlanCommand { } private List getBackupFilenames(CMDSender sender, @Untrusted Arguments arguments) { + if (!sender.hasPermission(Permissions.DATA_RESTORE)) { + return List.of(); + } if (arguments.get(1).isPresent()) { return DBType.names(); } @@ -531,6 +542,9 @@ public class PlanCommand { } private List webGroupTabComplete(CMDSender sender, @Untrusted Arguments arguments) { + if (!sender.hasPermission(Permissions.SET_GROUP)) { + return List.of(); + } Optional groupArgument = arguments.get(1); if (groupArgument.isPresent()) { return tabCompleteCache.getMatchingWebGroupNames(groupArgument.get());