Discord Bot-反应收集器/嵌入编辑

时间:2020-10-06 15:54:47

标签: node.js discord discord.js

我正在为我的机器人创建一个“你愿意的”命令。 我已经准备就绪,除了一个我无法确定如何实现的功能。

我很想拥有它,以便当有人对答案(?️或?️)做出反应时,该机器人然后编辑嵌入内容,并将回复的用户置于这样的答案之下:

enter image description here

我当前拥有的代码是:

case "wyr":
            embed.setColor('#fc2803')
            embed.setTitle('Would You Rather?')
            embed.setDescription(':a: **Be able to fly** \n \n :b: **Breathe underwater**')
            
            message.channel.send(embed).then(m => m.react('?️')).then(r => r.message.react('?️')); 

1 个答案:

答案 0 :(得分:1)

您可以使用discord.js-collector package轻松实现此目的。 但是,如果要使用普通的discord.js进行制作,则在发送嵌入内容时必须听取反应,然后将其编辑为所需的内容,如我将在示例中给出的那样。

使用discord.js-collector package的简单示例:

Code Here 还有Live Preview Here

使用Plaine Discord.js的简单示例:

const Discord = require("discord.js");

const embed = new Discord.MessageEmbed()
.setTitle("Hello There!");

const embedtosend = await message.channel.send(embed).then(m => m.react('?️')).then(r => r.message.react('?️'));

const filter = (reaction, user) => {
    return ['?️', '?️'].includes(reaction.emoji.name) && user.id === message.author.id;
};


message.awaitReactions(filter, { max: 2, time: 60000, errors: ['time'] })
    .then(collected => {
    const reaction = collected.first();

if (reaction.emoji.name === '?️') {
const someotherembed = new Discord.MessageEmbed()
.setTitle("This Is A Different Hello There!");

    embedtosend.edit(someotherembed)

  } else if (reaction.emoji.name === '?️') {
const anotherembed = new Discord.MessageEmbed()
.setTitle("This Is A Different Embed!");

    embedtosend.edit(anotherrembed)
    
  }
});

我尚未测试此代码,因此它可能无法正常工作...

相关问题