#node.js #discord.js #roles
#node.js #discord.js #роли
Вопрос:
Я пытаюсь создать команду, в которой, если вы произнесете команду косой черты с параметром use, она предоставит этому пользователю роль. Я продолжаю получать эту ошибку, хотя знаю, что этот участник существует.
Ошибка типа: Не удается прочитать свойства неопределенных (чтение «ролей»)
Мой код:
const { commandName, options } = interaction; const user = options.getUser('user'); if (commandName == 'givebetatester'){ console.log(user); const role = interaction.guild.roles.cache.get('917609388154425374'); interaction.reply('Success'); user.member.roles.add(role); }
Я дважды проверил, что у меня есть роль и пользователь, и я понятия не имею, что не так на данный момент. Любая помощь будет признательна.
Ответ №1:
Вы можете перейти только от члена Гильдии к Пользователю, а не наоборот. Вы пытаетесь перейти от Пользователя к члену Гильдии, используя user.member
Либо измените параметры команды косой черты, чтобы принять Участника вместо Пользователя
Или убедитесь, что у вас включено намерение Члена Гильдии, и извлеките объект члена Гильдии с идентификатором пользователя:
// Async/Await const member = await interaction.guild.members.fetch(user.id);
Ответ №2:
Исправлено! Я переключился с пользователя на упоминания, которые могут сломаться, если кто-то попытается ввести что-то другое, кроме роли, но это делает свое дело.
Код:
const { commandName, options } = interaction; const user = options.getMentionable('user'); if (commandName == 'givebetatester'){ const role = interaction.guild.roles.cache.get('917609388154425374'); user.roles.add(role); interaction.reply('lt;a:ncheckmark:917609071195074600gt;'); }