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

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

const ComUserID = interaction.user.id;
let rUser = interaction.guild.members.cache.get(ComUserID);
const userRoles = rUser.roles.cache.filter((roles) => roles.id !== rUser.guild.id).map((role) => role.id)
const HaveOrNotAdmRole = rUser.roles.cache.get('1136984503886303253');
console.log(userRoles)
if (userRoles === '',`${HaveOrNotAdmRole.id}`){    //ошибку выдает здесь


Никак не могу понять, как это пофиксить т.к. только начал изучать discord.js
Если у того кто прописывает команду есть нужная роль, то всё работает как нужно, но если её нет, то бот крашит с ошибкой:
TypeError: Cannot read properties of undefined (reading 'id')
Хотел сделать так, чтобы если прописавший команду юзер имел нужную роль, то команда воспроизводилась, а если юзер не имеет нужную роль, то выдавало бы embed с ошибкой. В итоге застрял на том что есть. Пожалуйста помогите.
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Средний 1 комментарий
Решение пользователя sinaee К ответам на вопрос (3)
sinaee
@sinaee Автор вопроса
//const userRoles = rUser.roles.cache.filter((roles) => roles.id !== rUser.guild.id).map((role) => role.id) бесполезная строчка
const HaveOrNotAdmRole = interaction.guild.roles.cache.get('1136984503886303253') // чуть изменена
if (rUser.roles.cache.find(role => role.id == HaveOrNotAdmRole){   }

посидел, подумал, поискал и вот полностью рабочий код. Причем работает имеено так как задумывалось. Если у пользователя есть роль, то комманда работает, если ее нет, то выводит ошибку через отдельный embed
Ответ написан
Комментировать