public async ValueTask OnPlayerChat(IPlayerChatEvent e) { _ = Task.Run(async() => { var message = e.Message; switch (_translatorSettings.TranslatorMode) { case TranslatorMode.Every: var lang = await _translatorService.GetLanguageAsynce(message); if (lang != _translatorSettings.MainLanguage) { var translation = await _translatorService.TranslateMessageAsync(message, lang); _susSuiteCore.Logger.LogDebug("Translated {0} to {1}", message, translation); var name = e.ClientPlayer.Character.PlayerInfo.PlayerName; await e.ClientPlayer.Character.SetNameAsync($"[00ff00ff]Translator"); await e.ClientPlayer.Character.SendChatAsync(translation); await e.ClientPlayer.Character.SetNameAsync(name); } break; case TranslatorMode.OnCommand: if (message.StartsWith("/t")) { var text = message.Substring(3); lang = await _translatorService.GetLanguageAsynce(text); if (lang != _translatorSettings.MainLanguage) { var translation = await _translatorService.TranslateMessageAsync(text, lang); _susSuiteCore.Logger.LogDebug("Translated {0} to {1}", text, translation); var name = e.ClientPlayer.Character.PlayerInfo.PlayerName; await e.ClientPlayer.Character.SetNameAsync($"[00ff00ff]Translator"); await e.ClientPlayer.Character.SendChatAsync(translation); await e.ClientPlayer.Character.SetNameAsync(name); } } break; } }); }