让Discord Bot检查它是否';s对此作出了反应';他自己的职位

让Discord Bot检查它是否';s对此作出了反应';他自己的职位,discord,discord.js,google-translation-api,Discord,Discord.js,Google Translation Api,我正在使用discord.js编写一个discord bot,最近我添加了一个//translate命令,该命令利用Google translate API在Google translate支持的所有语言之间进行翻译。我想添加使用反应快速将翻译重新翻译回英语的功能,我想让机器人检查是否有一个人对帖子做出了反应,如果有,将翻译重新翻译回英语 我真的很接近,但我遇到了一个问题,我无法让机器人检查它是否自己发送了反应,所以它会自动重新翻译回英语,因为它检测到自己的反应。我希望它只在一个人做出反应时重新

我正在使用discord.js编写一个discord bot,最近我添加了一个//translate命令,该命令利用Google translate API在Google translate支持的所有语言之间进行翻译。我想添加使用反应快速将翻译重新翻译回英语的功能,我想让机器人检查是否有一个人对帖子做出了反应,如果有,将翻译重新翻译回英语

我真的很接近,但我遇到了一个问题,我无法让机器人检查它是否自己发送了反应,所以它会自动重新翻译回英语,因为它检测到自己的反应。我希望它只在一个人做出反应时重新翻译,而且只翻译一次

我还不太熟悉discord.js的这个领域,所以我真的不知道怎么做

代码如下:

if(msg.content.startsWith(`${prefix}translate`)| msg.content.startsWith(`${prefix}t`){
常量text=args.slice(1.join(``);
如果(!text)返回msg.channel.send(`未提供任何翻译!语言代码位于https://cloud.google.com/translate/docs/languages !\n命令语法:\`${prefix}translate`或\`${prefix}t\`[text][language code]`);
常量text1=text.substring(0,text.length-2)
const target=text.substring(text.length-2,text.length)|
翻译
.translate(文本1,目标)
。然后(结果=>{
常量转换=结果[0];
msg.channel.send(`Translation:${Translation}`)。然后(sentText=>{

react(`在您的过滤器中,您可以检查以确保用户不是客户端,如下所示


const filter=(reaction,user)=>reaction.emoji.name=='在您的筛选器中,您可以检查以确保用户不是客户端,如下所示


const filter=(reaction,user)=>reaction.emoji.name==”因此我尝试了这个方法,但遇到了一个问题。我希望bot将翻译(sentText)翻译回英语,而不是旧文本(text1)(因为它只输出旧文本),因为它会导致一些有趣的翻译。但是,当我尝试这样做时,结果就是这样。
RangeError:在replaceProjectdToken(C:\Users\[Name]\node\u modules\@google cloud\projectify\build\src\index.js:31:23)的Array.map()处超过了最大调用堆栈大小
。代码与上面发布的示例相同,只是将text1替换为sentText。似乎与您用来翻译的模块有关。不知道这是怎么回事。可能会用更新的代码问一个新问题?因此我尝试了这个方法,但遇到了一个问题。我希望机器人翻译翻译(sentText)回到英语,不是旧文本(text1)(因为它只是输出旧文本),因为它可能会导致一些有趣的翻译。但是,当我尝试这样做时,结果就是这样。
RangeError:replaceProjectdToken(C:\Users\[Name]\node_modules\@google cloud\projectify\build\src\index.js:31:23)
。代码与上面发布的示例相同,只是将text1替换为sentText。似乎与您用来翻译的模块有关。不知道这是怎么回事。可能会用更新的代码问一个新问题?