diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/group/DeleteGroup.java b/common/src/main/java/me/lucko/luckperms/common/commands/group/DeleteGroup.java index d67e7c4d7..8add3b13b 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/group/DeleteGroup.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/group/DeleteGroup.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.group; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.SingleCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.tabcomplete.TabCompleter; @@ -70,6 +71,11 @@ public class DeleteGroup extends SingleCommand { return CommandResult.LOADING_ERROR; } + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), group)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + try { plugin.getStorage().deleteGroup(group, DeletionCause.COMMAND).get(); } catch (Exception e) { diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/group/GroupRename.java b/common/src/main/java/me/lucko/luckperms/common/commands/group/GroupRename.java index 5ca5c23b6..fafb31584 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/group/GroupRename.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/group/GroupRename.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.group; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.ChildCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.utils.ArgumentList; @@ -51,6 +52,11 @@ public class GroupRename extends ChildCommand { @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Group target, ArgumentList args, String label) { + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), target)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + String newGroupName = args.get(0).toLowerCase(); if (!DataConstraints.GROUP_NAME_TEST.test(newGroupName)) { Message.GROUP_INVALID_ENTRY.send(sender, newGroupName); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/track/DeleteTrack.java b/common/src/main/java/me/lucko/luckperms/common/commands/track/DeleteTrack.java index 8a0f7a116..6882536f3 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/track/DeleteTrack.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/track/DeleteTrack.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.track; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.SingleCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.tabcomplete.TabCompleter; @@ -64,6 +65,11 @@ public class DeleteTrack extends SingleCommand { return CommandResult.LOADING_ERROR; } + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), track)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + try { plugin.getStorage().deleteTrack(track, DeletionCause.COMMAND).get(); } catch (Exception e) { diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackAppend.java b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackAppend.java index e4312f02e..2f2b1253e 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackAppend.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackAppend.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.track; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.ChildCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.tabcomplete.TabCompleter; @@ -53,6 +54,11 @@ public class TrackAppend extends ChildCommand { @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track target, ArgumentList args, String label) { + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), target)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + String groupName = args.get(0).toLowerCase(); if (!DataConstraints.GROUP_NAME_TEST.test(groupName)) { sendDetailedUsage(sender, label); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackClear.java b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackClear.java index 03a4b4a7d..2252ab807 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackClear.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackClear.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.track; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.ChildCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.utils.ArgumentList; @@ -45,6 +46,11 @@ public class TrackClear extends ChildCommand { @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track target, ArgumentList args, String label) { + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), target)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + target.clearGroups(); Message.TRACK_CLEAR.send(sender, target.getName()); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackClone.java b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackClone.java index 1a5aa4abb..0f4888bfb 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackClone.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackClone.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.track; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.ChildCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.utils.ArgumentList; @@ -49,6 +50,11 @@ public class TrackClone extends ChildCommand { @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track target, ArgumentList args, String label) { + if (ArgumentPermissions.checkViewPerms(plugin, sender, getPermission().get(), target)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + String newTrackName = args.get(0).toLowerCase(); if (!DataConstraints.TRACK_NAME_TEST.test(newTrackName)) { Message.TRACK_INVALID_ENTRY.send(sender, newTrackName); @@ -61,6 +67,11 @@ public class TrackClone extends ChildCommand { return CommandResult.LOADING_ERROR; } + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), newTrack)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + newTrack.setGroups(target.getGroups()); Message.CLONE_SUCCESS.send(sender, Component.text(target.getName()), Component.text(newTrack.getName())); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackInfo.java b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackInfo.java index 530cf1486..a2cd9bbcf 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackInfo.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackInfo.java @@ -27,6 +27,7 @@ package me.lucko.luckperms.common.commands.track; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.ChildCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.utils.ArgumentList; @@ -43,6 +44,11 @@ public class TrackInfo extends ChildCommand { @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track target, ArgumentList args, String label) { + if (ArgumentPermissions.checkViewPerms(plugin, sender, getPermission().get(), target)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + Message.TRACK_INFO.send(sender, target.getName(), Message.formatTrackPath(target.getGroups())); return CommandResult.SUCCESS; } diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackInsert.java b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackInsert.java index d8269fd1a..dbb8b6dcb 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackInsert.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackInsert.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.track; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.ChildCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.tabcomplete.TabCompleter; @@ -53,6 +54,11 @@ public class TrackInsert extends ChildCommand { @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track target, ArgumentList args, String label) { + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), target)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + String groupName = args.get(0).toLowerCase(); if (!DataConstraints.GROUP_NAME_TEST.test(groupName)) { sendDetailedUsage(sender, label); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackRemove.java b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackRemove.java index 9ef661488..534bb584d 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackRemove.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackRemove.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.track; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.ChildCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.tabcomplete.TabCompleter; @@ -52,6 +53,11 @@ public class TrackRemove extends ChildCommand { @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track target, ArgumentList args, String label) { + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), target)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + String groupName = args.get(0).toLowerCase(); if (!DataConstraints.GROUP_NAME_TEST.test(groupName)) { sendDetailedUsage(sender, label); diff --git a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackRename.java b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackRename.java index 8533d8733..e157ad7b1 100644 --- a/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackRename.java +++ b/common/src/main/java/me/lucko/luckperms/common/commands/track/TrackRename.java @@ -28,6 +28,7 @@ package me.lucko.luckperms.common.commands.track; import me.lucko.luckperms.common.actionlog.LoggedAction; import me.lucko.luckperms.common.command.CommandResult; import me.lucko.luckperms.common.command.abstraction.ChildCommand; +import me.lucko.luckperms.common.command.access.ArgumentPermissions; import me.lucko.luckperms.common.command.access.CommandPermission; import me.lucko.luckperms.common.command.spec.CommandSpec; import me.lucko.luckperms.common.command.utils.ArgumentList; @@ -50,6 +51,11 @@ public class TrackRename extends ChildCommand { @Override public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Track target, ArgumentList args, String label) { + if (ArgumentPermissions.checkModifyPerms(plugin, sender, getPermission().get(), target)) { + Message.COMMAND_NO_PERMISSION.send(sender); + return CommandResult.NO_PERMISSION; + } + String newTrackName = args.get(0).toLowerCase(); if (!DataConstraints.TRACK_NAME_TEST.test(newTrackName)) { Message.TRACK_INVALID_ENTRY.send(sender, newTrackName);