Discord.js Команда на добавление роли упомянутого человека

Хочу сделать команду с выдачей роли упомянутого пользователя, но не знаю как. Команда: !role @пользователь

Версия discord.js: [email protected]

 if (array[0] == "!role") {
    msg.channel.send("You have been given `Need to be tested` role! You will be tested shortly!")
    const member = msg.mentions.members.first(array[1]);
    var testRole = msg.guild.roles.cache.find(role => role.id == "835744852804501567")
    msg.member.addRole(testRole);
}

Ответы (1 шт):

Автор решения: Cipher

В целом Вы двигались в правильном направлении. Подправил методы на получение роли и пользователя, и добавил выдачу самой роли.

if (array[0] == '!role') {
    let member = msg.mentions.members.first() || msg.guild.members.cache.get(array[1])
    let role = msg.guild.roles.cache.get('835744852804501567');
    if (!member) {
        return msg.reply('Пользователь не найден!');
    }

    if (!role) {
        return msg.reply('Роль не найдена!');
    }

    member.roles
        .add(role)
        .then(() => {
            msg.reply('done');
        })
        .catch((err) => {
            msg.reply('failed');
        });
}
→ Ссылка