我正在尝试创建一个机器人,该机器人将删除具有一定数量thumbsdown
反应的邮件。我无法确定邮件中特定反应的计数。
基本上,我创建了一个命令来等待消息并将其添加到我的msgarray
中。在每条消息之后,我要遍历数组并删除具有指定反应量的所有消息。
这是我到目前为止所拥有的:
var msgarray = [];
const msgs = await message.channel.awaitMessages(msg => {
msgarray.push(msg);
for (i = 0; i < msgarray.length; i++) {
// I'm not sure where to go from here, I want to make an if statement that checks
// for a certain amount of thumbsdown reactions on the message
if (msgarray[i].reactions) {
// incomplete
}
}
});
这是我第一次使用javascript编程,因此如果此代码没有太大意义,我深表歉意。
答案 0 :(得分:0)
TextChannel.awaitMessages()
使用Collection
进行解析,因此您使用的msg
参数不是单个消息,而是多个消息的集合。
另外,最好使用messageReactionAdd
事件来检查仅在消息得到响应时的消息,该事件每次有人添加响应时都会触发。
它应该看起来像这样:
// this code is executed every time they add a reaction
client.on('messageReactionAdd', (reaction, user) => {
let limit = 10; // number of thumbsdown reactions you need
if (reaction.emoji.name == '' && reaction.count >= limit) reaction.message.delete();
});