问题
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