Как удалить сообщения в discord с помощью бота, но только со специальной ролью node.js

#javascript #node.js #discord #discord.js

#javascript #node.js #Discord #discord.js

Вопрос:

Хорошо, я помню, что делал это раньше, но я совершенно не могу вспомнить, что это был за код.

Я хочу, чтобы бот проверил, имеет ли автор команды роль «Мастера удаления». Если нет, то он должен выдавать ошибку «У вас нет требуемой роли!».

Это код, который у меня есть в настоящее время:

 const amount = parseInt(args[2])   1;
if (isNaN(amount)) {
    return msg.reply("that doesnt seem to be a valid number.");
} else if (amount <= 1 || amount > 100) {
    return msg.reply("you need to input a number between 2 and 100.");
}
msg.channel.bulkDelete(amount, true).catch((err) => {
    console.error(err);
    msg.channel.send("there was an error trying to delete messages in this channel!");
});       
  

Ответ №1:

Вы можете использовать message.member.roles.cache.has() (при условии, что вы используете DJS v12), чтобы проверить, есть ли у участника эта роль. Передайте идентификатор главной роли удаления в .has()

Вот пример

 if (message.member.roles.cache.has('1234567890') {
   // Allow message deletion
} else {
   // Error message
}