From 0616e20b6cd535e061321c209917bc39e7c65bd2 Mon Sep 17 00:00:00 2001 From: Vineeth <94882582+FantomWolf182@users.noreply.github.com> Date: Mon, 26 Aug 2024 17:34:50 -0500 Subject: [PATCH] Agent now translates before saying. --- src/agent/modes.js | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/agent/modes.js b/src/agent/modes.js index 952fcf0..12f1fe6 100644 --- a/src/agent/modes.js +++ b/src/agent/modes.js @@ -2,10 +2,38 @@ import * as skills from './library/skills.js'; import * as world from './library/world.js'; import * as mc from '../utils/mcdata.js'; import settings from '../../settings.js' +import translate from 'google-translate-api-x'; -function say(agent, message) { + +async function handleTranslation(message, lang) { + + const preferred_lang = settings.preferred_language; + + try { + if (preferred_lang.toLowerCase() == "en" || preferred_lang.toLowerCase() == "english"){ + return message; + } + else{ + lang = String(lang); // Ensure lang is a string + + const translation = await translate(message, { to: lang }); + return translation.text || message; // Ensure translation.text is a string + } + + } catch (error) { + console.error('Error translating message:', error); + return message; // Fallback to the original message if translation fails + } + } + + + + +async function say(agent, message) { + const preferred_lang = settings.preferred_language; if (agent.shut_up || !settings.narrate_behavior) return; - agent.bot.chat(message); + var translation = await handleTranslation(message, `${preferred_lang}`); + agent.bot.chat(translation); } // a mode is a function that is called every tick to respond immediately to the world