如何向所有具有角色的成员发送消息(discord.js)

Posted

技术标签:

【中文标题】如何向所有具有角色的成员发送消息(discord.js)【英文标题】:How to send a message to all members who have a role (discord.js) 【发布时间】:2019-02-15 03:11:52 【问题描述】:

我正在使用 discord.js 编写一个机器人。 我想在我写信时向所有拥有<role> 的成员发送<message>

/a <role> <message>

在频道中。

我该怎么做?

感谢您的帮助! ;)

【问题讨论】:

【参考方案1】:

这是一种可能的工作方式:

const args = message.content.split(" ");
const roleArgs = args.slice(0, 1);
const messageArgs = args.slice(1)

const role = message.guild.roles.find(role => role.name.toLowerCase() === roleArgs.join(" ").toLowerCase())
if (!role) return message.reply('There is not such a role!');

for (let i = 0; i < message.guild.members.size; i++) 
    if (message.guild.members[i].roles.has(role.id)) 
        message.guild.members[i].user.send(messageArgs.join(" "))
    

【讨论】:

请记住,这有点违反 discord 的 API,所以如果您要这样做,我不会将其设为公共机器人 或者在发送之间添加一个超时,因为有人可以很容易地让你一次发送 1000 条消息

以上是关于如何向所有具有角色的成员发送消息(discord.js)的主要内容,如果未能解决你的问题,请参考以下文章

如何设置无法踢出具有更高角色的成员 - Discord.js

Discord.js V12 如何显示具有特定角色的所有成员?

Discord Bot 可以在频道上向所有人发送消息吗

向成员发送消息 (discord.js)

Discord Py - 如何使用文本命令向公会的所有成员添加多个角色

如何在 Discord.Js 中列出所有具有角色的成员