From 5acf035116affe6652b03099b20828ced8d5ca03 Mon Sep 17 00:00:00 2001 From: JRoy <10731363+JRoy@users.noreply.github.com> Date: Sun, 12 Apr 2026 11:29:33 -0700 Subject: [PATCH] Fix command descriptions not using player's locale Usage descriptions were resolved once at command construction time via tlLiteral() (server default locale) and cached. Now store the translation key instead and resolve per-player at display time using playerTl()/tl(). Fixes #6353 --- .../src/main/java/com/earth2me/essentials/Essentials.java | 2 +- .../main/java/com/earth2me/essentials/commands/Commandhelp.java | 2 +- .../com/earth2me/essentials/commands/EssentialsCommand.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Essentials/src/main/java/com/earth2me/essentials/Essentials.java b/Essentials/src/main/java/com/earth2me/essentials/Essentials.java index 2241b53d5d9..9488832f2a9 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/main/java/com/earth2me/essentials/Essentials.java @@ -837,7 +837,7 @@ public boolean onCommandEssentials(final CommandSender cSender, final Command co sender.sendTl("commandHelpLine2", description); sender.sendTl("commandHelpLine3"); for (Map.Entry usage : cmd.getUsageStrings().entrySet()) { - sender.sendTl("commandHelpLineUsage", AdventureUtil.parsed(usage.getKey().replace("", commandLabel)), AdventureUtil.parsed(usage.getValue())); + sender.sendTl("commandHelpLineUsage", AdventureUtil.parsed(usage.getKey().replace("", commandLabel)), AdventureUtil.parsed(sender.tl(usage.getValue()))); } } else { sender.sendMessage(command.getDescription()); diff --git a/Essentials/src/main/java/com/earth2me/essentials/commands/Commandhelp.java b/Essentials/src/main/java/com/earth2me/essentials/commands/Commandhelp.java index 9c2cd2baf8a..1973367b430 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/commands/Commandhelp.java +++ b/Essentials/src/main/java/com/earth2me/essentials/commands/Commandhelp.java @@ -54,7 +54,7 @@ protected void run(final Server server, final User user, final String commandLab user.sendTl("commandHelpLine3"); if (essCommand != null && !essCommand.getUsageStrings().isEmpty()) { for (Map.Entry usage : essCommand.getUsageStrings().entrySet()) { - user.sendTl("commandHelpLineUsage", AdventureUtil.parsed(usage.getKey().replace("", cmd)), AdventureUtil.parsed(usage.getValue())); + user.sendTl("commandHelpLineUsage", AdventureUtil.parsed(usage.getKey().replace("", cmd)), AdventureUtil.parsed(user.playerTl(usage.getValue()))); } } else { user.sendMessage(bukkit.getUsage()); diff --git a/Essentials/src/main/java/com/earth2me/essentials/commands/EssentialsCommand.java b/Essentials/src/main/java/com/earth2me/essentials/commands/EssentialsCommand.java index 6f7091d90db..cb033927325 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/commands/EssentialsCommand.java +++ b/Essentials/src/main/java/com/earth2me/essentials/commands/EssentialsCommand.java @@ -56,7 +56,7 @@ protected EssentialsCommand(final String name) { //noinspection InfiniteLoopStatement while (true) { final String baseKey = name + "CommandUsage" + i; - addUsageString(tlLiteral(baseKey), tlLiteral(baseKey + "Description")); + addUsageString(tlLiteral(baseKey), baseKey + "Description"); i++; } } catch (MissingResourceException ignored) {