Discord JS - 向机器人所在的每台服务器中的每个用户发送 dm

Posted

技术标签:

【中文标题】Discord JS - 向机器人所在的每台服务器中的每个用户发送 dm【英文标题】:Discord JS - Sending dm to every user in every server that bot is 【发布时间】:2020-08-22 02:45:53 【问题描述】:

我想创建一个类似- /announcement 的命令,但我想向机器人所在的服务器的每个用户发送消息:

Server a - will send

服务器 B - 也将通过触发一个命令发送,这可能吗?

【问题讨论】:

请注意,向您的机器人所在的每个服务器中的每个用户发送未经请求的 DM 违反了 Discord 的Terms of Service,并且可能会被禁止。 如果一个答案解决了您的问题,那么请接受它,让其他人知道它有效 【参考方案1】:

您可以使用client.users获取所有已缓存的用户,然后您可以执行以下操作:

client.users.cache.forEach(user => 
  user.send('hello')
)

或者,您可以使用client.guilds 遍历所有公会,并在遍历它们时,遍历其成员并向他们发送消息。

client.guilds.cache.forEach(guild => 
  guild.members.cache.forEach(member => 
    member.send('hello')
  )
)

注意:根据用户的数量,这将需要很长时间才能完成,并且会导致您的机器人滞后,并且很有可能会受到速率限制。

【讨论】:

以上是关于Discord JS - 向机器人所在的每台服务器中的每个用户发送 dm的主要内容,如果未能解决你的问题,请参考以下文章

交互式命令 discord.js v12

使用 discord.js 从不同服务器向多个频道 ID 发送消息

Discord.js 如何创建机器人状态公告?

Heroku/Discord.js 错误“服务不可用”

有没有办法对使用 discord.js 发送的每条消息做出反应

如何向 discord.js bot v12 添加验证