#javascript #node.js #discord.js
Вопрос:
Пользовательская переменная в моем коде-это пользователь discord, под которым есть под-переменные. Я должен иметь доступ к user.roles, но он говорит, что он не определен.
let iso = message.client.guilds.cache.get(`${config.serverID}`);
let user = iso.members.fetch(args[1].slice(3, -1));
return console.log(user.roles);
консоль действительно выдает мне информацию, когда я подключаюсь к консоли.войдите в систему пользователя.
joinedTimestamp: 1621628004254,
lastMessageID: null,
lastMessageChannelID: null,
premiumSinceTimestamp: 0,
deleted: false,
nickname: 'test',
_roles: [ '755571567861432411', '761262143647252511' ],
user: User {
Я пропустил часть журнала консоли из-за личной информации, но мне было интересно, может ли кто-нибудь помочь мне получить доступ к ролям пользователей? Я использовал код точно так же, как и раньше, и он работал нормально.
Ответ №1:
Во-первых, это помогает await
выбрать пользователя (убедитесь, что вы находитесь в async
функции), поэтому:
let user = await iso.members.fetch(args[1].slice(3, -1));
Затем свойство, которое вы ищете , не просто вызывается roles
, а вместо _roles
этого, поэтому вы должны получить правильное свойство.
В совокупности ваш новый код должен выглядеть примерно так:
let iso = message.client.guilds.cache.get(`${config.serverID}`);
let user = await iso.members.fetch(args[1].slice(3, -1));
return console.log(user._roles);
Комментарии:
1. это позволило мне получить доступ к массиву ролей, но он не правильный. есть ли другой способ, которым мне нужно захватить пользователя, потому что это не позволит мне использовать._roles.add, потому что это недопустимая функция.
2. Я смог использовать
user.roles.add('role-id-here')
без проблем, так_roles
как это просто массив, в то времяroles
как это менеджер ролей ( документы ). Вы получаете какое-либо конкретное сообщение об ошибке?3. Он просто говорит, что не может выполнить функцию add, потому что user.roles не существует. Я почти уверен, что все необходимые пакеты требуются с самого начала, но возможно ли, что мне не хватает одного?