From eaa53ab65542b5dec2f6f9bfd404c759d3ac0565 Mon Sep 17 00:00:00 2001 From: JRoy <10731363+JRoy@users.noreply.github.com> Date: Fri, 3 Oct 2025 05:48:53 -0400 Subject: [PATCH] Fix updating join message when not needed Prevents calling setJoinMessage when the message is unchanged causing Bukkit to no longer send the translation key to the client (nuking vanilla translation) --- .../com/earth2me/essentials/EssentialsPlayerListener.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Essentials/src/main/java/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/main/java/com/earth2me/essentials/EssentialsPlayerListener.java index 923ab8dab1a..9d25f77978f 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/main/java/com/earth2me/essentials/EssentialsPlayerListener.java @@ -450,7 +450,10 @@ private void joinFlow(final User user, final long currentTime, final String mess effectiveMessage = message; } - joinMessageConsumer.accept(effectiveMessage); + // Only change the vanilla join message if it's different to avoid nuking client translation + if (effectiveMessage != null && !effectiveMessage.equals(message) || message != null && effectiveMessage == null) { + joinMessageConsumer.accept(effectiveMessage); + } ess.runTaskAsynchronously(() -> ess.getServer().getPluginManager().callEvent(new AsyncUserDataLoadEvent(user, effectiveMessage)));