当前位置: 首页 > 知识库问答 >
问题:

关于反应不一致的信息。js

范浩宕
2023-03-14

我一直试图让我的机器人回复用户时,他们的反应机器人表情,但没有运气,我希望有人能帮助我在这里,我只是一个初学者与不和谐。js。

这是我的代码,我只是需要帮助,当用户做出反应时,机器人会发送一条消息回来。

bot.on('message', message => {
    if(message.author.bot) 
    {
        if(message.embeds)
        {
            const embedMsg = message.embeds.find(msg => msg.title === 'Next step');
            if(embedMsg)
            {
                message.react('708923041928839169')
                .then(reaction => reaction.message.react('708923028846805073'))
                .catch(err => console.error);
            }
        }
        return;
    }

    if(message.content.toLowerCase() === 'done'){
      
        const embed = new Discord.MessageEmbed();
        embed.setTitle('Next step')
        embed.setColor(colors.blue);
        embed.setDescription('Please react to Agree or Disagree');
        message.channel.send(embed)
    }

  });

bot.login(token);

共有1个答案

陆运乾
2023-03-14

您可以简单地使用ReactionCollector来完成此操作。这个留档可以很容易地在discord.js文档中找到,我建议你在不确定如何在StackOverflow上提问之前先看看那里。

下面是一个使用代码的示例:

bot.on('message', message => {
    if(message.author.bot) return;

    if(message.content.toLowerCase() === 'done'){
  
        const embed = new Discord.MessageEmbed();
        embed.setTitle('Next step')
        embed.setColor(colors.blue);
        embed.setDescription('Please react to Agree or Disagree');
        message.channel.send(embed).then(embedMsg => {
            embedMsg.react('708923041928839169')
            .then(reaction => embedMsg.react('708923028846805073'))
            .catch(err => console.error);

            const filter = (r, u) => r.emoji.id == '708923041928839169' || r.emoji.id == "708923028846805073";
            const collector = message.createReactionCollector(filter, {time: 60000});
            collector.on('collect', (r, u) => {
               //Put your response to reactions here
               message.channel.send("Reply with something to " + u.tag + " because they reacted with " + r.emoji.name);
            });
        })
    }

});

bot.login(token);

我还移动了你的代码,在其中你将反应添加到嵌入中,因为你这样做是不必要的额外步骤。

相关资源:
https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=createReactionCollector

 类似资料:
  • 我希望将反应添加到消息中的机器人,而不是我。有人能帮我吗?

  • 我对javascript和discord非常陌生。js,有人能帮我,告诉我如何设置做出反应的用户的角色吗?我自己做这件事有困难。

  • 我正试图让我的不和谐机器人对人们的信息做出反应。例如,如果有人说“欢迎”,机器人会对他们的消息做出反应,因为它有“欢迎”这个词,我也会设置这个关键词。我知道如何让机器人用响应来回复消息,但不是反应。

  • 我开始用11.5discord.js写一个不和谐机器人。 我不想使用像,因为每个人都需要几天的时间才能添加自己的反应,而且它位于一个小的通道中,总是只通过几条消息来清理。 我正在通过提取一条特定的消息并希望从中读取现有的反应来获取旧消息。但我一直在阅读信息中的反应。 差不多 返回一个空数组。 文档提到不可能监听旧的消息反应,只有在12. x中可以。但是我没有使用监听器,所以我想这个限制在这种情况下

  • 我正在试着用我的机器人做右舷代码,其他一切都很好。但是我正在努力让机器人忽略实际消息作者的反应。 这是我当前的代码: 它返回以下错误:

  • 我不知道为什么我的反应角色代码不起作用。如果有人能帮助我,我将不胜感激! message函数用于缓存消息,以便bot可以检测对该消息的反应,如果确实需要的话,Idk。 也没有错误,只是没有给我角色。