如何从具有角色的人向有权使用此 cmd 的所有成员发送消息 (discord.js)

How to send a message to all members who have a role from person with role, that have permission to use this cmd (discord.js)

我正在使用 discord.js 编写一个机器人程序。我想发送一个 <message> 给所有拥​​有 <role> 的成员,当有角色的人有权使用命令时:

/send <role> <message>

在频道中。

我该怎么做?

我复制并稍微重做了这个话题,因为在原来的那个答案目前是无关紧要的

我试过类似的主题,但目前不相关

试试这个

const {
    SlashCommandBuilder
} = require('@discordjs/builders')

module.exports = {
    data: new SlashCommandBuilder()
        .setName('newsletter')
        .setDescription('Send a message to members by role')
        .addRoleOption(option =>
            option
            .setName('role')
            .setDescription('What role')
            .setRequired(true))
        .addStringOption(option =>
            option
            .setName('message')
            .setDescription('What is the message.')
            .setRequired(true)),
    async execute(client, interaction) {
        const guild = client.guilds.cache.get('959899135258026055')
        const role2have = [
            '54654546545645656',
            '65465456465456465456'
        ]
        if (interaction.member.roles.cache.some(role => role2have.includes(role.id))) {
            const role = guild.roles.cache.get(interaction.options.getRole('role').id)
            console.log(role)
            role.members.forEach(member => {
                member.send({
                    content: `${interaction.options.getString('message')}`
                }).catch((err) => {
                    console.log(`Unable to DM ${member.user.username} - received error:\n${err}`)
                })
            })
            return interaction.reply({
                content: 'Message sent',
                ephemeral: true
            })
        } else {
            return interaction.reply({
                content: 'You do not have permission to use this command',
                ephemeral: true
            })
        }
    }
}

然后执行此命令: /newsletter role: @role message: message content