如何让机器人向点击反应的用户发送 DM 消息?
client.on("message", (msg) => {
if (msg.guild && msg.content.startsWith("!test")) {
client.channels.cache.get("813782841187631126").send("Test-1")
.then((sentMessage) => {
sentMessage.react('811140592762486805')
const filter = (r) => r.emoji.id == '811140592762486805';
const collector = sentMessage.createReactionCollector(filter, {time: 60000});
collector.on('collect', (r) => {
reaction.author.send("Test-2");
});
});
}
});
答案 0 :(得分:1)
ReactionCollector 上的 collect 事件有两个参数; reaction
和 user
。您可以简单地使用 user 上的 send()
方法向他们发送 DM。
此外,您不应该收集机器人的反应。您需要更新您的 filter
并添加 && !user.bot
,这样您就不会尝试向机器人发送消息。
const filter = (reaction, user) =>
reaction.emoji.id === '811140592762486805' && !user.bot;
const collector = sentMessage.createReactionCollector(filter, {
time: 60000,
});
collector.on('collect', (reaction, user) => {
user.send('Test-2');
});