如何向反应的作者发送 DM 消息?

时间:2021-02-23 16:23:04

标签: javascript discord discord.js

如何让机器人向点击反应的用户发送 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");
        });
      });
  }
});

1 个答案:

答案 0 :(得分:1)

ReactionCollector 上的 collect 事件有两个参数; reactionuser。您可以简单地使用 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');
});