Я кодирую бота с помощью discord.js.
Я хотел бы отправить <message>
всем участникам, у которых есть <role>
, когда я напишу:
/a <role> <message>
в канале.
Как я могу это сделать ?
Спасибо за помощь ! ;)
Вот возможность, как это могло бы работать:
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(" "))
}
}
Или добавьте тайм-аут между отправкой, потому что кто-то может легко заставить вас отправить тысячи сообщений за один раз
Имейте в виду, что это немного противоречит API Discord, поэтому, если вы собираетесь это сделать, я бы не стал делать его общедоступным ботом.