From 7a4c094607032abac470c883efdce4de7eb109db Mon Sep 17 00:00:00 2001 From: gnembon Date: Mon, 29 Nov 2021 23:27:54 +0100 Subject: [PATCH] fixes #1186 added carpetCommandPermissionLevel to allow admins to control who has access to /carpet command. --- src/main/java/carpet/CarpetSettings.java | 21 +++++++++++++++++++ .../java/carpet/settings/SettingsManager.java | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index 83780c0f..5c274fa0 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -127,6 +127,27 @@ public class CarpetSettings public static String commandDistance = "true"; */ + private static class CarpetPermissionLevel extends Validator { + @Override public String validate(ServerCommandSource source, ParsedRule currentRule, String newValue, String string) { + if (source.hasPermissionLevel(4)) + return newValue; + return null; + } + + @Override + public String description() + { + return "This setting can only be set by admins with op level 4"; + } + } + @Rule( + desc = "Carpet command permission level. Can only be set via .conf file", + category = CREATIVE, + validate = CarpetPermissionLevel.class, + options = {"ops", "2", "4"} + ) + public static String carpetCommandPermissionLevel = "ops"; + @Rule(desc = "Gbhs sgnf sadsgras fhskdpri!!!", category = EXPERIMENTAL) diff --git a/src/main/java/carpet/settings/SettingsManager.java b/src/main/java/carpet/settings/SettingsManager.java index e7f762eb..8b723700 100644 --- a/src/main/java/carpet/settings/SettingsManager.java +++ b/src/main/java/carpet/settings/SettingsManager.java @@ -588,7 +588,7 @@ public class SettingsManager } LiteralArgumentBuilder literalargumentbuilder = literal(identifier).requires((player) -> - player.hasPermissionLevel(2) && !locked); + canUseCommand(player, CarpetSettings.carpetCommandPermissionLevel) && !locked); literalargumentbuilder.executes((context)-> listAllSettings(context.getSource())). then(literal("list").