如何从具有角色的人向有权使用此 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
我正在使用 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