Discord.js Ошибка отсутствия разрешений при назначении роли

#discord.js

#discord.js

Вопрос:

 if (message.content.startsWith("_mute")) {
    if (!message.member.hasPermission("ADMINISTRATOR")) {
        return message.reply("You don't have permission to do this.");
    }
    if (message.mentions.users.size === 0) {
        return message.reply("Usage: `_mute [mention]`");
    }

    var muteRole = message.guild.roles.cache.find(r => r.name === "mute");

    if (typeof muteRole === "undefined") {
        return message.reply("Your server doesn't have `mute` role!");
    }

    message.mentions.members.forEach((member) => {
        member.roles.add(muteRole).then((value) => {
            message.reply("Succeed to mute "   member.nickname   ".");
        }).catch((error) => {
            message.reply("Internal bot error");
            console.error(error);
        });
    });
}
  

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

Я установил номер разрешения бота на ‘1409286326’

Есть ли что-нибудь еще, что мне нужно сделать?

Разрешение

Комментарии:

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

Ответ №1:

Попробуйте использовать этот номер разрешения: 1475677686
Вероятно, это связано с тем, что у вас отсутствовали некоторые важные разрешения, такие как READ_MESSAGES, SEND_MESSAGES и другие. Кроме того, ваш код, возможно, нуждается в небольшой доработке, undefined это не строка. Попробуйте приведенный ниже код и предложенный номер разрешения:

 if (message.content.startsWith("_mute")) {
    if (!message.member.hasPermission("ADMINISTRATOR")) {
        return message.reply("You don't have permission to do this.");
    }
    if (!message.mentions.users.array().length) {
        return message.reply("Usage: `_mute [mention]`");
    }

    var muteRole = message.guild.roles.cache.find(r => r.name === "mute");

    if (!muteRole) {
        return message.reply("Your server doesn't have `mute` role!");
    }

    message.mentions.members.forEach((member) => {
        member.roles.add(muteRole).then((value) => {
            message.reply("Succeed to mute "   member.nickname   ".");
        }).catch((error) => {
            message.reply("Internal bot error");
            console.error(error);
        });
    });
}