From 1876f11fc2a225ab848b2bbfdca7166134f50e44 Mon Sep 17 00:00:00 2001 From: itqop Date: Sat, 18 Oct 2025 17:43:27 +0300 Subject: [PATCH] 2 --- src/main/java/org/itqop/whitelist/Config.java | 6 ++++ .../itqop/whitelist/WhitelistCommands.java | 31 +++++++++++++++++++ .../assets/whitelist/lang/en_us.json | 8 +++-- .../assets/whitelist/lang/ru_ru.json | 9 ++++++ 4 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/whitelist/lang/ru_ru.json diff --git a/src/main/java/org/itqop/whitelist/Config.java b/src/main/java/org/itqop/whitelist/Config.java index 9bdf4be..c7c8083 100644 --- a/src/main/java/org/itqop/whitelist/Config.java +++ b/src/main/java/org/itqop/whitelist/Config.java @@ -23,6 +23,10 @@ public final class Config { .comment("Enable detailed API logging") .define("enableLogging", true); + private static final ModConfigSpec.BooleanValue ENABLE_WHITELIST = BUILDER + .comment("Enable/disable whitelist functionality") + .define("enableWhitelist", true); + static final ModConfigSpec SPEC = BUILDER.build(); // кэш значений @@ -30,6 +34,7 @@ public final class Config { public static String apiKey; public static int requestTimeout; public static boolean enableLogging; + public static boolean enableWhitelist; private Config() {} @@ -41,5 +46,6 @@ public final class Config { apiKey = API_KEY.get(); requestTimeout = REQUEST_TIMEOUT.get(); enableLogging = ENABLE_LOGGING.get(); + enableWhitelist = ENABLE_WHITELIST.get(); } } diff --git a/src/main/java/org/itqop/whitelist/WhitelistCommands.java b/src/main/java/org/itqop/whitelist/WhitelistCommands.java index fd8c31f..3dfb6f1 100644 --- a/src/main/java/org/itqop/whitelist/WhitelistCommands.java +++ b/src/main/java/org/itqop/whitelist/WhitelistCommands.java @@ -21,6 +21,12 @@ public class WhitelistCommands { apiClient = new WhitelistApiClient(); dispatcher.register(Commands.literal("whitelist") + .then(Commands.literal("on") + .executes(WhitelistCommands::enableWhitelist)) + .then(Commands.literal("off") + .executes(WhitelistCommands::disableWhitelist)) + .then(Commands.literal("status") + .executes(WhitelistCommands::whitelistStatus)) .then(Commands.literal("add") .then(Commands.argument("player", StringArgumentType.string()) .executes(WhitelistCommands::addPlayer) @@ -38,6 +44,31 @@ public class WhitelistCommands { .executes(WhitelistCommands::countPlayers))); } + private static boolean isWhitelistEnabled() { + return Config.enableWhitelist; + } + + private static int enableWhitelist(CommandContext context) { + Config.enableWhitelist = true; + context.getSource().sendSuccess(() -> + Component.literal("Whitelist enabled"), true); + return 1; + } + + private static int disableWhitelist(CommandContext context) { + Config.enableWhitelist = false; + context.getSource().sendSuccess(() -> + Component.literal("Whitelist disabled"), true); + return 1; + } + + private static int whitelistStatus(CommandContext context) { + String status = isWhitelistEnabled() ? "enabled" : "disabled"; + context.getSource().sendSuccess(() -> + Component.literal("Whitelist is " + status), true); + return 1; + } + private static int addPlayer(CommandContext context) { return addPlayerWithReason(context); } diff --git a/src/main/resources/assets/whitelist/lang/en_us.json b/src/main/resources/assets/whitelist/lang/en_us.json index ca32100..96daa40 100644 --- a/src/main/resources/assets/whitelist/lang/en_us.json +++ b/src/main/resources/assets/whitelist/lang/en_us.json @@ -1,5 +1,9 @@ { - "itemGroup.whitelist": "Example Mod Tab", + "itemGroup.whitelist": "Whitelist Mod Tab", "block.whitelist.example_block": "Example Block", - "item.whitelist.example_item": "Example Item" + "item.whitelist.example_item": "Example Item", + "commands.whitelist.enabled": "Whitelist enabled", + "commands.whitelist.disabled": "Whitelist disabled", + "commands.whitelist.status": "Whitelist is %s", + "commands.whitelist.disabled_message": "Whitelist is disabled. Use '/whitelist on' to enable it." } diff --git a/src/main/resources/assets/whitelist/lang/ru_ru.json b/src/main/resources/assets/whitelist/lang/ru_ru.json new file mode 100644 index 0000000..ebc0c1d --- /dev/null +++ b/src/main/resources/assets/whitelist/lang/ru_ru.json @@ -0,0 +1,9 @@ +{ + "itemGroup.whitelist": "Вкладка мода Whitelist", + "block.whitelist.example_block": "Пример блока", + "item.whitelist.example_item": "Пример предмета", + "commands.whitelist.enabled": "Whitelist включен", + "commands.whitelist.disabled": "Whitelist отключен", + "commands.whitelist.status": "Whitelist %s", + "commands.whitelist.disabled_message": "Whitelist отключен. Используйте '/whitelist on' для включения." +}