向每个对 discord.js 中的消息做出反应的用户发送 dm

Posted

技术标签:

【中文标题】向每个对 discord.js 中的消息做出反应的用户发送 dm【英文标题】:send dm to every user that reacted to a message in discord.js 【发布时间】:2021-04-02 03:48:24 【问题描述】:

我正在为我的服务器制作一个机器人,我希望它通过带有主题的命令向所有对指导消息中的特定主题做出反应的用户发送 DM。

例如!通知主题

我的代码目前如下所示:

client.guilds.cache.forEach(guild => 
  guild.members.cache.forEach(member => 
    member.send(new Discord.MessageEmbed()
    .setColor("#FF0000")
    .addField(" ", message.author)
    .addField("Subject", content)
    .setTimestamp()
    )

  )
)

  await message.channel.send(`$message.author the message was successfully sent!`);

【问题讨论】:

请添加更多关于您要做什么的信息。 【参考方案1】:

事情是这样的: 在您的guild.members.cache.forEach() 中,您指的是GuildMember,然后您使用.send() 方法。问题是 GuildMember 没有 send 方法,这意味着您必须使用 User

这里有一个修复:

client.guilds.cache.forEach(guild => 
  guild.members.cache.forEach(member => 
    member.user.send(new Discord.MessageEmbed() // This is where the issue was located
    .setColor("#FF0000")
    .addField(" ", message.author)
    .addField("Subject", content)
    .setTimestamp()
    )

  )
)

  await message.channel.send(`$message.author the message was successfully sent!`);

【讨论】:

以上是关于向每个对 discord.js 中的消息做出反应的用户发送 dm的主要内容,如果未能解决你的问题,请参考以下文章

Discord JS - 如何对同一个嵌入做出多次反应?

(discord.js) 如何提及对机器人消息做出反应的用户?

使用 discord.js 收集对消息做出反应的用户

对自己的消息做出反应的 Discord 机器人

当用户对消息做出反应时,机器人会在 discord.js 中发送另一条消息

Discord js v12 如果有人对嵌入做出反应,则发送消息