How to send a message to all members who have a role (discord.js)

99封情书 提交于 2020-06-17 09:42:11

问题


I'm coding a bot using discord.js. I would like to send a <message> to all members who have <role> when I write :

/a <role> <message>

in a channel.

How can I do this ?

Thank you for your help ! ;)


回答1:


Here is a possibility how it could work:

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(" "))
    }
}


来源:https://stackoverflow.com/questions/52261942/how-to-send-a-message-to-all-members-who-have-a-role-discord-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!