From 1283f29dacf56945d7620a6043f7bd8307a47d20 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Thu, 23 Jan 2025 01:16:13 +0100 Subject: [PATCH] fix: send detected language message with new language Fixes #465 --- .../com/rexcantor64/triton/player/BungeeLanguagePlayer.java | 2 +- .../com/rexcantor64/triton/player/SpigotLanguagePlayer.java | 4 ++-- .../com/rexcantor64/triton/player/VelocityLanguagePlayer.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/rexcantor64/triton/player/BungeeLanguagePlayer.java b/core/src/main/java/com/rexcantor64/triton/player/BungeeLanguagePlayer.java index 7a9b3102..6303bb3a 100644 --- a/core/src/main/java/com/rexcantor64/triton/player/BungeeLanguagePlayer.java +++ b/core/src/main/java/com/rexcantor64/triton/player/BungeeLanguagePlayer.java @@ -118,10 +118,10 @@ public void setLang(Language language, boolean sendToSpigot) { PlayerChangeLanguageBungeeEvent event = new PlayerChangeLanguageBungeeEvent(this, this.language, language); BungeeCord.getInstance().getPluginManager().callEvent(event); if (event.isCancelled()) return; + this.language = event.getNewLanguage(); if (this.waitingForClientLocale && getParent() != null) parent.sendMessage(TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', Triton.get().getMessagesConfig() .getMessage("success.detected-language", language.getDisplayName())))); - this.language = event.getNewLanguage(); this.waitingForClientLocale = false; if (sendToSpigot && getParent() != null) diff --git a/core/src/main/java/com/rexcantor64/triton/player/SpigotLanguagePlayer.java b/core/src/main/java/com/rexcantor64/triton/player/SpigotLanguagePlayer.java index bc7949c9..5a4d000d 100644 --- a/core/src/main/java/com/rexcantor64/triton/player/SpigotLanguagePlayer.java +++ b/core/src/main/java/com/rexcantor64/triton/player/SpigotLanguagePlayer.java @@ -119,6 +119,8 @@ public void setLang(Language lang, boolean sendToBungee) { PlayerChangeLanguageSpigotEvent event = new PlayerChangeLanguageSpigotEvent(this, this.lang, lang); Bukkit.getPluginManager().callEvent(event); if (event.isCancelled()) return; + boolean hasChanged = !Objects.equals(event.getNewLanguage(), this.lang); + this.lang = event.getNewLanguage(); if (this.waitingForClientLocale) { try { if (toBukkit().isPresent()) { @@ -133,8 +135,6 @@ public void setLang(Language lang, boolean sendToBungee) { Triton.get().getLogger().logError(e, "Failed to send \"language changed\" message."); } } - boolean hasChanged = !Objects.equals(event.getNewLanguage(), this.lang); - this.lang = event.getNewLanguage(); this.waitingForClientLocale = false; if (hasChanged) { refreshAll(); diff --git a/core/src/main/java/com/rexcantor64/triton/player/VelocityLanguagePlayer.java b/core/src/main/java/com/rexcantor64/triton/player/VelocityLanguagePlayer.java index 4d571f4f..1011262e 100644 --- a/core/src/main/java/com/rexcantor64/triton/player/VelocityLanguagePlayer.java +++ b/core/src/main/java/com/rexcantor64/triton/player/VelocityLanguagePlayer.java @@ -71,10 +71,10 @@ public void setLang(Language language) { public void setLang(Language language, boolean sendToSpigot) { // TODO fire Triton's API change language event + this.language = language; if (this.waitingForClientLocale && getParent() != null) parent.sendMessage(LegacyComponentSerializer.legacyAmpersand().deserialize(Triton.get().getMessagesConfig() .getMessage("success.detected-language", language.getDisplayName()))); - this.language = language; this.waitingForClientLocale = false; if (sendToSpigot && getParent() != null)