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 5e466e06..f9dd5bcf 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").