Как получить доступ к значениям в "msg.guild.members.fetch ()" - PullRequest
0 голосов
/ 01 августа 2020

Это фрагмент важного кода -

const Members = msg.guild.members.fetch();
console.log(Members)

Я хочу получить доступ к переменным в «Членах», а также хочу знать, какой это тип данных (объект, массив и т. Д. c. ) Это журнал -

Promise {
  Collection [Map] {
    '518759221098053634' => GuildMember {
      guild: [Guild],
      user: [User],
      joinedTimestamp: 1595386815939,
      lastMessageID: null,
      lastMessageChannelID: null,
      premiumSinceTimestamp: null,
      deleted: false,
      _roles: [Array],
      nickname: null
    },
    '680036979106512914' => GuildMember {
      guild: [Guild],
      user: [User],
      joinedTimestamp: 1594698809775,
      lastMessageID: null,
      lastMessageChannelID: null,
      premiumSinceTimestamp: null,
      deleted: false,
      _roles: [Array]
    },
    '717347622532153396' => GuildMember {
      guild: [Guild],
      user: [User],
      joinedTimestamp: 1595919969136,
      lastMessageID: '738997364949254154',
      lastMessageChannelID: '735330127944220725',
      premiumSinceTimestamp: null,
      deleted: false,
      _roles: [Array],
      nickname: null
    },
    '730309712133881916' => GuildMember {
      guild: [Guild],
      user: [User],
      joinedTimestamp: 1594954679836,
      lastMessageID: null,
      lastMessageChannelID: null,
      premiumSinceTimestamp: null,
      deleted: false,
      _roles: [Array],
      nickname: null
    },
    '730624908748521613' => GuildMember {
      guild: [Guild],
      user: [User],
      joinedTimestamp: 1594698780260,
      lastMessageID: null,
      lastMessageChannelID: null,
      premiumSinceTimestamp: null,
      deleted: false,
      _roles: [Array],
      nickname: null
    },
    '738658236957458472' => GuildMember {
      guild: [Guild],
      user: [ClientUser],
      joinedTimestamp: 1596183671593,
      lastMessageID: '738997347387965531',
      lastMessageChannelID: '735330127944220725',
      premiumSinceTimestamp: null,
      deleted: false,
      _roles: [Array],
      nickname: null
    }
  }
}

Как вы храните, например, идентификатор пользователя в этой строке:

'518759221098053634' => GuildMember {

Думаю, есть один дубликат этого вопроса, но Я думаю, что там есть устаревшие решения или для другого языка.

1 Ответ

1 голос
/ 01 августа 2020

Гильдия . члены . fetch () - это Promise , которое вернет:

  • A GuildMember , если вы предоставите UserResolvable в качестве первого параметра.
  • A Collection , содержащую всех членов гильдии, если вы не укажите что угодно в качестве первого параметра.
message.guild.members.fetch("UserID").then(member => {
    // This will return a single GuildMember object, if found.
    console.log(`Found ${member.user.tag}. They are ${member.presence.status}.`);
}).catch(e => console.log("Couldn't fetch the member."));
// This will return a Collection containing all members in the Guild. 
message.guild.members.fetch().then(members => {
    // To store the user id(s) you can map the Collection by ID:
    const IDs = members.map(user => user.id);
        // --> ["UserID", "UserID", "UserID", "UserID"]

    // To store certain id(s) you can use the filter method of Collection:

    const OnlineMembers = members.filter(member => member.presence.status == "online");
}).catch(e => console.log("Couldn't fetch members."));

Ссылки:

...