一旦上一条消息收到回复,是否可以让 Discord 机器人发送一条消息?我在想这样的事情:
if(cmd === `${prefix}list`) {
var i = 0;
let embed = new Discord.RichEmbed()
.addField("List", "Content");
let anotherembed = new Discord.RichEmbed()
.addField("Message", "List has been completed!");
return message.channel.send(embed);
do {
message.channel.send(anotherembed + 1);
}
while (i !== 0) && (reaction.emoji.name === "✅");
}
那不是你应该做的事情。
你想要的是message.awaitReactions https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=awaitReactions.
DiscordJS 团队和社区提供了一份很棒的指南,其中有一个很好的例子awaitReactions
.
这里是link https://discordjs.guide/popular-topics/reactions.html#awaiting-reactions以及他们使用的一个例子:
message.react('????').then(() => message.react('????'));
const filter = (reaction, user) => {
return ['????', '????'].includes(reaction.emoji.name) && user.id === message.author.id;
};
message.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] })
.then(collected => {
const reaction = collected.first();
if (reaction.emoji.name === '????') {
message.reply('you reacted with a thumbs up.');
}
else {
message.reply('you reacted with a thumbs down.');
}
})
.catch(collected => {
console.log(`After a minute, only ${collected.size} out of 4 reacted.`);
message.reply('you didn\'t react with neither a thumbs up, nor a thumbs down.');
});
您基本上需要一个过滤器,仅允许一系列表情符号,以及用户“使用”它们。
并且在您的代码中的某处也有:
return message.channel.send(embed);
您应该删除返回部分,否则它将仅返回而不执行其余代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)