Skip to content

Commit 9d36552

Browse files
authored
add enable bypass permission (#239)
1 parent 0e8cd8d commit 9d36552

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

src/main/java/com/extendedclip/deluxemenus/command/subcommand/MetaCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
public class MetaCommand extends SubCommand {
3434

3535
private static final List<String> SUB_COMMANDS = List.of("list", "show", "set", "remove", "add", "subtract", "switch");
36+
private static final String META_COMMAND = "deluxemenus.meta";
3637

3738
public MetaCommand(@NotNull final DeluxeMenus plugin) {
3839
super(plugin);
@@ -45,7 +46,7 @@ public MetaCommand(@NotNull final DeluxeMenus plugin) {
4546

4647
@Override
4748
public void execute(@NotNull final CommandSender sender, @NotNull final List<String> arguments) {
48-
if (!sender.isOp()) {
49+
if (!sender.hasPermission(META_COMMAND)) {
4950
plugin.sms(sender, Messages.NO_PERMISSION);
5051
return;
5152
}
@@ -151,7 +152,7 @@ public void execute(@NotNull final CommandSender sender, @NotNull final List<Str
151152

152153
@Override
153154
public @Nullable List<String> onTabComplete(@NotNull final CommandSender sender, @NotNull final List<String> arguments) {
154-
if (!sender.isOp() || !VersionHelper.IS_PDC_VERSION || plugin.getPersistentMetaHandler() == null) {
155+
if (!sender.hasPermission(META_COMMAND) || !VersionHelper.IS_PDC_VERSION || plugin.getPersistentMetaHandler() == null) {
155156
return null;
156157
}
157158

src/main/java/com/extendedclip/deluxemenus/config/DeluxeMenusConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,7 @@ public void loadMenu(FileConfiguration c, String key, boolean mainConfig, final
564564

565565
builder.parsePlaceholdersInArguments(c.getBoolean(pre + "arguments_support_placeholders", false));
566566
builder.parsePlaceholdersAfterArguments(c.getBoolean(pre + "parse_placeholders_after_arguments", false));
567+
builder.enableBypassPerm(c.getBoolean(pre + "enable_open_requirements_bypass_permissions", false));
567568

568569
// Don't need to register the menu since it's done in the constructor
569570
new Menu(plugin, builder.build(), items, path);

src/main/java/com/extendedclip/deluxemenus/menu/Menu.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ private boolean handleOpenRequirements(final @NotNull MenuHolder holder) {
234234
return true;
235235
}
236236

237-
if (holder.getViewer() != null && this.hasOpenBypassPerm(holder.getViewer())) {
237+
if (holder.getViewer() != null && (this.options.enableBypassPerm() && this.hasOpenBypassPerm(holder.getViewer()))) {
238238
return true;
239239
}
240240

src/main/java/com/extendedclip/deluxemenus/menu/options/MenuOptions.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class MenuOptions {
2020
private final boolean refresh;
2121
private final boolean parsePlaceholdersInArguments;
2222
private final boolean parsePlaceholdersAfterArguments;
23+
private final boolean enableBypassPerm;
2324

2425
private final List<String> commands;
2526
private final boolean registerCommands;
@@ -41,6 +42,7 @@ private MenuOptions(final @NotNull MenuOptionsBuilder builder) {
4142
this.refresh = builder.refresh;
4243
this.parsePlaceholdersInArguments = builder.parsePlaceholdersInArguments;
4344
this.parsePlaceholdersAfterArguments = builder.parsePlaceholdersAfterArguments;
45+
this.enableBypassPerm = builder.enableBypassPerm;
4446

4547
this.commands = builder.commands;
4648
this.registerCommands = builder.registerCommands;
@@ -93,6 +95,10 @@ public boolean parsePlaceholdersAfterArguments() {
9395
return this.parsePlaceholdersAfterArguments;
9496
}
9597

98+
public boolean enableBypassPerm() {
99+
return this.enableBypassPerm;
100+
}
101+
96102
public @NotNull List<@NotNull String> commands() {
97103
return this.commands;
98104
}
@@ -134,6 +140,7 @@ public boolean registerCommands() {
134140
.refresh(this.refresh)
135141
.parsePlaceholdersInArguments(this.parsePlaceholdersInArguments)
136142
.parsePlaceholdersAfterArguments(this.parsePlaceholdersAfterArguments)
143+
.enableBypassPerm(this.enableBypassPerm)
137144
.commands(this.commands)
138145
.registerCommands(this.registerCommands)
139146
.arguments(this.arguments)
@@ -155,6 +162,7 @@ public static class MenuOptionsBuilder {
155162
private boolean refresh;
156163
private boolean parsePlaceholdersInArguments = false;
157164
private boolean parsePlaceholdersAfterArguments = false;
165+
private boolean enableBypassPerm = false;
158166

159167
private List<String> commands = List.of();
160168
private boolean registerCommands = false;
@@ -216,6 +224,11 @@ public MenuOptionsBuilder parsePlaceholdersAfterArguments(final boolean parsePla
216224
return this;
217225
}
218226

227+
public MenuOptionsBuilder enableBypassPerm(final boolean enableBypassPerm) {
228+
this.enableBypassPerm = enableBypassPerm;
229+
return this;
230+
}
231+
219232
public MenuOptionsBuilder commands(final @NotNull List<@NotNull String> commands) {
220233
this.commands = commands;
221234
return this;

0 commit comments

Comments
 (0)