收到表情符号反应后的 Discord.js 消息
Posted
技术标签:
【中文标题】收到表情符号反应后的 Discord.js 消息【英文标题】:Discord.js message after receiving emoji reaction 【发布时间】:2018-09-25 07:57:19 【问题描述】:是否可以让 Discord 机器人在前一条消息收到反应后发送消息?我正在考虑类似的事情:
if(cmd === `$prefixlist`)
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 === "✅");
【问题讨论】:
【参考方案1】:这不是你应该做的。
你想要的是message.awaitReactions
。
DiscordJS 团队和社区提供了一个很棒的指南,其中有一个很好的例子 awaitReactions
。
这是link 和他们使用的示例:
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);
您应该删除返回部分,否则它只会返回而不执行其余代码。
【讨论】:
以上是关于收到表情符号反应后的 Discord.js 消息的主要内容,如果未能解决你的问题,请参考以下文章