From f46703508e12bd425cadd02a002e3b5b3f579bc9 Mon Sep 17 00:00:00 2001 From: Kyle Nanakdewa Date: Fri, 29 Mar 2019 19:18:20 -0400 Subject: [PATCH] Translator improvements --- .../translator/TranslatorListener.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/com/kylenanakdewa/chateverywhere/translator/TranslatorListener.java b/src/com/kylenanakdewa/chateverywhere/translator/TranslatorListener.java index c9e04ce..54c2954 100644 --- a/src/com/kylenanakdewa/chateverywhere/translator/TranslatorListener.java +++ b/src/com/kylenanakdewa/chateverywhere/translator/TranslatorListener.java @@ -81,26 +81,32 @@ public String translate(String message, String targetLanguageCode) { startingIndex += 6; int endingIndex = response.indexOf(""); - return response.substring(startingIndex, endingIndex); + String translation = response.substring(startingIndex, endingIndex); + + if(translation.equalsIgnoreCase(message)) return null; + + return translation; } - @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.MONITOR) public void onChat(AsyncPlayerChatEvent event) { // If event is cancelled, do nothing - if (event.isCancelled()) - return; + if (event.isCancelled()) return; + + String message = ChatColor.stripColor(event.getMessage()); + // If message starts with / or ./, it's probably a command, ignore it + if(message.startsWith("/") || message.startsWith("./")) return; // Get languages to translate into Set targetLanguages = new HashSet(playerLanguages.values()); for (String languageCode : targetLanguages) { - String message = translate(event.getMessage(), languageCode); - if(message!=null){ + String translation = translate(message, languageCode); + if(translation!=null){ for (Player player : Bukkit.getOnlinePlayers()) { // Delay message, so it shows after the chat message - Bukkit.getScheduler().scheduleAsyncDelayedTask(plugin, () -> player.sendMessage(ChatColor.DARK_GRAY + "[Translation] " + ChatColor.RESET + message)); + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> player.sendMessage(ChatColor.DARK_GRAY + "[Translation] " + ChatColor.RESET + translation)); } } }