From 1ac54b7e1d73bf6e8104380b3ab835b3edad3f0c Mon Sep 17 00:00:00 2001 From: zax71 Date: Mon, 4 Sep 2023 13:08:39 +0100 Subject: [PATCH] Add i18n --- .../commands/GamerulesCommand.java | 33 ++++++++++--------- .../MultiverseCore/utils/MVCorei18n.java | 7 ++++ .../resources/multiverse-core_en.properties | 7 ++++ 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java index 1c397719..782ddf8d 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java +++ b/src/main/java/com/onarandombox/MultiverseCore/commands/GamerulesCommand.java @@ -1,6 +1,8 @@ package com.onarandombox.MultiverseCore.commands; import co.aikar.commands.BukkitCommandIssuer; +import co.aikar.commands.CommandIssuer; +import co.aikar.commands.MessageType; import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandCompletion; import co.aikar.commands.annotation.CommandPermission; @@ -14,6 +16,7 @@ import com.onarandombox.MultiverseCore.api.MVWorld; import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.commandtools.MVCommandManager; import com.onarandombox.MultiverseCore.commandtools.MultiverseCommand; +import com.onarandombox.MultiverseCore.utils.MVCorei18n; import jakarta.inject.Inject; import org.bukkit.GameRule; import org.bukkit.World; @@ -43,31 +46,29 @@ public class GamerulesCommand extends MultiverseCommand { @CommandPermission("multiverse.core.gamerules.list") @CommandCompletion("@mvworlds") @Syntax("[World]") - @Description("{@@mv-core.gamerules.description}") //TODO i18n + @Description("{@@mv-core.gamerules.description}") public void onGamerulesCommand(@NotNull BukkitCommandIssuer issuer, - @Flags("resolve=issuerOnly") - Player player, - @Single @Syntax("") - @Description("{@@mv-core.gamerules.world.description}") //TODO i18n + @Description("{@@mv-core.gamerules.description.world}") MVWorld world ) { - if (!issuer.isPlayer()) { - if (world == null) { - issuer.sendMessage("You must specify a world from the command line"); + if (!issuer.isPlayer() && world == null) { + issuer.sendInfo(MVCorei18n.GAMERULES_ERROR_SPECIFYWORLD); return; - } } // Get the players world if none is specified if (world == null) { + Player player = issuer.getPlayer(); // Need to do it here so the command can be run from console Logging.finer("Getting the player's current world to list gamerules for"); world = worldManager.getMVWorld(player.getWorld()); } - issuer.sendMessage("--- Gamerules for " + world.getName() + " ---\n" + encodeMap(getGameRuleMap(world.getCBWorld()))); + // Finally, send the list + issuer.sendInfo(MVCorei18n.GAMERULES_TITLE, "{world}", world.getName()); + issuer.sendMessage("\n" + encodeMap(issuer, getGameRuleMap(world.getCBWorld()))); @@ -92,16 +93,16 @@ public class GamerulesCommand extends MultiverseCommand { return gameRuleMap; } - private String encodeMap(Map inMap) { //TODO i18n + private String encodeMap(CommandIssuer issuer, Map inMap) { StringBuilder stringBuilder = new StringBuilder(); for (String key : inMap.keySet()) { String value = inMap.get(key); - stringBuilder - .append("&l") - .append(key) - .append("&f : &6") - .append(value) + stringBuilder.append(this.commandManager.formatMessage( + issuer, + MessageType.INFO, + MVCorei18n.GAMERULES_RULE, + "{gamerule}", key, "{value}", value)) .append("\n"); } return stringBuilder.toString(); diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/MVCorei18n.java b/src/main/java/com/onarandombox/MultiverseCore/utils/MVCorei18n.java index 0c2b3351..f2b7ac8f 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/MVCorei18n.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/MVCorei18n.java @@ -42,6 +42,13 @@ public enum MVCorei18n implements MessageKeyProvider { GAMERULE_SUCCESS_SINGLE, GAMERULE_SUCCESS_MULTIPLE, + // Gamerules command + GAMERULES_DESCRIPTION, + GAMERULES_DESCRIPTION_WORLD, + GAMERULES_ERROR_SPECIFYWORLD, + GAMERULES_TITLE, + GAMERULES_RULE, + // import command IMPORT_IMPORTING, IMPORT_FAILED, diff --git a/src/main/resources/multiverse-core_en.properties b/src/main/resources/multiverse-core_en.properties index b97ca106..a72bfb44 100644 --- a/src/main/resources/multiverse-core_en.properties +++ b/src/main/resources/multiverse-core_en.properties @@ -59,6 +59,13 @@ mv-core.gamerule.failed=Failed to set gamerule {gamerule} to {value} in {world}. mv-core.gamerule.success.single=&aSuccessfully set {gamerule} to {value} in {world}. mv-core.gamerule.success.multiple=&aSuccessfully set {gamerule} to {value} in {count} worlds. +# /mv gamerules +mv-core.gamerules.description=Lists gamerules for the specified world +mv-core.gamerules.description.world=The world to list gamerules in +mv-core.gamerules.error.specifyworld=You must specify a world from the command line +mv-core.gamerules.title= --- Gamerules for {world} --- +mv-core.gamerules.rule=&l{gamerule}&f : &6{value} + # /mv import mv-core.import.description=Imports an existing world folder. mv-core.import.name.description=Name of the world folder.