我正在为我的机器人创建一个“你愿意的”命令。 我已经准备就绪,除了一个我无法确定如何实现的功能。
我很想拥有它,以便当有人对答案(?️或?️)做出反应时,该机器人然后编辑嵌入内容,并将回复的用户置于这样的答案之下:
我当前拥有的代码是:
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('?️'));
答案 0 :(得分:1)
您可以使用discord.js-collector package轻松实现此目的。 但是,如果要使用普通的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)
}
});
我尚未测试此代码,因此它可能无法正常工作...