Задать вопрос
@Seque

Как получить все роли пользователя?

Я делаю embed сообщение, где должна выводиться информация о пользователе, где будут присутствовать его имеющиеся роли в данный момент.

Я никак не могу понять, как выводить название каждой роли или упоминать роль с помощью @роль в embed'e.
Глядя интернет, то все используют message.member.roles.cache.find() для поиска роли или . has() для проверки на наличие. Как определять абсолютно все имеющиеся роли у пользователя, который отправляет сообщение и выводить в embed?
  • Вопрос задан
  • 348 просмотров
Подписаться 2 Простой 5 комментариев
Решения вопроса 2
ukrainemf
@ukrainemf
Код ниже выведет в строку через запятую все роли пользователя, включая "@everyone". Если ещё есть вопросы - задавайте.
bot.on('messageCreate', (message) => {
    if (message.author.bot) return;
    let roles = "";
    message.member.roles.cache.map((role) => {
        roles += role.name + ", ";
    });
    console.log(roles); // Вывод: "@Роль1, @Роль2, @everyone"
});
Ответ написан
Комментировать
AlmondPark33609
@AlmondPark33609
Занимаюсь кодингом как хобби
bot.on('message', async (message) => {
    if (message.content.startsWith('!myroles')){
        let arr = []

        message.member.roles.cache.forEach(r => {
            arr.push(r)
        })
        message.channel.send(arr.join(', '))
     }
})

Таким образом каждую роль автора сообщения мы толкаем в массив и через функцию join делаем все роли через запятую
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы