diff --git a/common/src/main/java/me/lucko/luckperms/commands/SubCommand.java b/common/src/main/java/me/lucko/luckperms/commands/SubCommand.java index bf52ba412..c1790743e 100644 --- a/common/src/main/java/me/lucko/luckperms/commands/SubCommand.java +++ b/common/src/main/java/me/lucko/luckperms/commands/SubCommand.java @@ -123,7 +123,7 @@ public abstract class SubCommand { * @return true if the sender can use the command */ public boolean isAuthorized(Sender sender) { - return permission == null || permission.isAuthorized(sender); + return permission.isAuthorized(sender); } diff --git a/common/src/main/java/me/lucko/luckperms/commands/group/GroupMainCommand.java b/common/src/main/java/me/lucko/luckperms/commands/group/GroupMainCommand.java index e51535416..9569a97d4 100644 --- a/common/src/main/java/me/lucko/luckperms/commands/group/GroupMainCommand.java +++ b/common/src/main/java/me/lucko/luckperms/commands/group/GroupMainCommand.java @@ -52,7 +52,7 @@ public class GroupMainCommand extends MainCommand { .add(new GroupSetTempInherit()) .add(new GroupUnsetTempInherit()) .add(new GroupShowTracks()) - .add(new MetaCommands<>()) + .add(new MetaCommands<>(false)) .add(new GroupBulkChange()) .add(new GroupClear()) .add(new GroupRename()) diff --git a/common/src/main/java/me/lucko/luckperms/commands/meta/MetaCommands.java b/common/src/main/java/me/lucko/luckperms/commands/meta/MetaCommands.java index 21117c6e6..8310efeda 100644 --- a/common/src/main/java/me/lucko/luckperms/commands/meta/MetaCommands.java +++ b/common/src/main/java/me/lucko/luckperms/commands/meta/MetaCommands.java @@ -23,6 +23,7 @@ package me.lucko.luckperms.commands.meta; import com.google.common.collect.ImmutableList; +import lombok.RequiredArgsConstructor; import me.lucko.luckperms.LuckPermsPlugin; import me.lucko.luckperms.commands.*; import me.lucko.luckperms.commands.meta.subcommands.*; @@ -36,6 +37,8 @@ import java.util.Optional; import java.util.stream.Collectors; public class MetaCommands extends SubCommand { + private boolean user; + private final List subCommands = ImmutableList.builder() .add(new MetaInfo()) .add(new MetaAddPrefix()) @@ -49,14 +52,13 @@ public class MetaCommands extends SubCommand { .add(new MetaClear()) .build(); - public MetaCommands() { + public MetaCommands(boolean user) { super("meta", "Edit metadata values", null, Predicate.alwaysFalse(), null); + this.user = user; } @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, T t, List args, String label) { - boolean user = t instanceof User; - if (args.size() == 0) { sendUsageMeta(sender, user, label); return CommandResult.INVALID_ARGS; @@ -91,6 +93,16 @@ public class MetaCommands extends SubCommand { return sub.execute(plugin, sender, t, strippedArgs); } + @Override + public boolean isAuthorized(Sender sender) { + for (MetaSubCommand subCommand : subCommands) { + if (subCommand.isAuthorized(sender, user)) { + return true; + } + } + return false; + } + private void sendUsageMeta(Sender sender, boolean user, String label) { List subs = subCommands.stream() .filter(s -> s.isAuthorized(sender, user)) diff --git a/common/src/main/java/me/lucko/luckperms/commands/user/UserMainCommand.java b/common/src/main/java/me/lucko/luckperms/commands/user/UserMainCommand.java index dbfa38707..fc1271795 100644 --- a/common/src/main/java/me/lucko/luckperms/commands/user/UserMainCommand.java +++ b/common/src/main/java/me/lucko/luckperms/commands/user/UserMainCommand.java @@ -59,7 +59,7 @@ public class UserMainCommand extends MainCommand { .add(new UserPromote()) .add(new UserDemote()) .add(new UserShowPos()) - .add(new MetaCommands<>()) + .add(new MetaCommands<>(true)) .add(new UserBulkChange()) .add(new UserClear()) .build()