From ee3f194d3fae59e88f3aeec51c02fe1e98ca1ca3 Mon Sep 17 00:00:00 2001 From: "game.crash" <73080127+gamecrash534@users.noreply.github.com> Date: Sun, 31 Aug 2025 23:57:02 +0200 Subject: [PATCH 1/2] remove redundant permission checks for flag list command --- .../main/java/com/plotsquared/core/command/FlagCommand.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java b/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java index 4406bf1765..468dcb48b0 100644 --- a/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java +++ b/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java @@ -595,10 +595,6 @@ public void list( final RunnableVal3 confirm, final RunnableVal2 whenDone ) { - if (!checkRequirements(player)) { - return; - } - final Map> flags = new HashMap<>(); for (PlotFlag plotFlag : GlobalFlagContainer.getInstance().getRecognizedPlotFlags()) { if (plotFlag instanceof InternalFlag) { From 3a1d598538dd87a0882ee09ce9462504580d8b64 Mon Sep 17 00:00:00 2001 From: "game.crash" <73080127+gamecrash534@users.noreply.github.com> Date: Mon, 1 Sep 2025 15:21:14 +0200 Subject: [PATCH 2/2] introduce new plots.flag.list.other perm and update checkRequirements method by adding to-check permissions as a parameter --- .../plotsquared/core/command/FlagCommand.java | 18 +++++++++++------- .../core/permissions/Permission.java | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java b/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java index 468dcb48b0..11f4ca7be6 100644 --- a/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java +++ b/Core/src/main/java/com/plotsquared/core/command/FlagCommand.java @@ -177,7 +177,7 @@ private static boolean checkPermValue( * * @return {@code true} if the player is allowed to modify the flags at their current location */ - private static boolean checkRequirements(final @NonNull PlotPlayer player) { + private static boolean checkRequirements(final @NonNull PlotPlayer player, final @NonNull Permission permission) { final Plot plot = player.getCurrentPlot(); if (plot == null) { player.sendMessage(TranslatableCaption.of("errors.not_in_plot")); @@ -187,10 +187,10 @@ private static boolean checkRequirements(final @NonNull PlotPlayer player) { player.sendMessage(TranslatableCaption.of("working.plot_not_claimed")); return false; } - if (!plot.isOwner(player.getUUID()) && !player.hasPermission(Permission.PERMISSION_SET_FLAG_OTHER)) { + if (!plot.isOwner(player.getUUID()) && !player.hasPermission(permission)) { player.sendMessage( TranslatableCaption.of("permission.no_permission"), - TagResolver.resolver("node", Tag.inserting(Permission.PERMISSION_SET_FLAG_OTHER)) + TagResolver.resolver("node", Tag.inserting(permission)) ); return false; } @@ -328,7 +328,7 @@ public void set( final RunnableVal3 confirm, final RunnableVal2 whenDone ) { - if (!checkRequirements(player)) { + if (!checkRequirements(player, Permission.PERMISSION_SET_FLAG_OTHER)) { return; } if (args.length < 2) { @@ -393,7 +393,7 @@ public void add( final RunnableVal3 confirm, final RunnableVal2 whenDone ) { - if (!checkRequirements(player)) { + if (!checkRequirements(player, Permission.PERMISSION_SET_FLAG_OTHER)) { return; } if (args.length < 2) { @@ -468,7 +468,7 @@ public void remove( final RunnableVal3 confirm, final RunnableVal2 whenDone ) { - if (!checkRequirements(player)) { + if (!checkRequirements(player, Permission.PERMISSION_SET_FLAG_OTHER)) { return; } if (args.length != 1 && args.length != 2) { @@ -595,6 +595,10 @@ public void list( final RunnableVal3 confirm, final RunnableVal2 whenDone ) { + if (!checkRequirements(player, Permission.PERMISSION_FLAG_LIST_OTHER)) { + return; + } + final Map> flags = new HashMap<>(); for (PlotFlag plotFlag : GlobalFlagContainer.getInstance().getRecognizedPlotFlags()) { if (plotFlag instanceof InternalFlag) { @@ -641,7 +645,7 @@ public void info( final RunnableVal3 confirm, final RunnableVal2 whenDone ) { - if (!checkRequirements(player)) { + if (!checkRequirements(player, Permission.PERMISSION_SET_FLAG_OTHER)) { return; } if (args.length < 1) { diff --git a/Core/src/main/java/com/plotsquared/core/permissions/Permission.java b/Core/src/main/java/com/plotsquared/core/permissions/Permission.java index 4afbda3d3d..1828e1de91 100644 --- a/Core/src/main/java/com/plotsquared/core/permissions/Permission.java +++ b/Core/src/main/java/com/plotsquared/core/permissions/Permission.java @@ -145,6 +145,7 @@ public enum Permission implements ComponentLike { PERMISSION_FLAG_REMOVE("plots.flag.remove"), PERMISSION_FLAG_ADD("plots.flag.add"), PERMISSION_FLAG_LIST("plots.flag.list"), + PERMISSION_FLAG_LIST_OTHER("plots.flag.list.other"), PERMISSION_ADMIN_COMMAND_KICK("plots.admin.command.kick"), PERMISSION_GRANT_SINGLE("plots.grant"), PERMISSION_GRANT("plots.grant.%s"),