Discord.js v13 Не может считывать свойства неопределенных (чтение «ролей»)

#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;'); }