因此,目标是给用户一个选择,通过发送一条消息,用Y和N对该消息做出反应并检测到同一用户何时对Y做出反应来恢复已删除的消息。
我写出了所有代码,看起来不错,但是变量'question'似乎无法跟踪最初存储在其中的消息对象,因为它抛出了UnhandledPromiseRejectionWarning: TypeError: question.on is not a function
。我已经测试
我知道这样的事情是可能的,因为Toasty经常依赖于此。
免责声明:我的代码中包含.then()
,但我不确定自己使用的是否正确。我以前从未使用过它,但是仔细研究它似乎很合适。
其他免责声明:我在此网站上看到了another post with a similar issue,但老实说我不明白答案,而且我觉得这段代码是问题的更简洁版本。
client.on('messageDelete', function(msg){
if (msg.author.id == 42){ //I'll plug my discord account in a different post,tyvm
msg.channel.send ("I saw that, FOOL");
msg.channel.send ("Would you like me to bring your message back from the grave? (Y/N)").then (function (question){
question.react("?");
question.react("?");
question.on('messageReactionAdd',function (reaction, author){
if (reaction == "?" && author.id == 42){
msg.channel.send ("FOOL: " +msg.content);
}
});
});
}
});
答案 0 :(得分:0)
因此question
是消息对象,它没有messageReactionAdd
侦听器,即clients
侦听器,它的用法如下:
client.on('messageReactionAdd', function(msg){
//code
})
您真正需要的是消息对象上的awaitReaction
方法。
const filter = (reaction, user) => reaction.emoji.name === '?' // or whatever
question.awaitReactions(filter, { time: 15000 })
.then(col=>{
console.log('reacted')
})