首页 > 解决方案 > 如何访问“msg.guild.members.fetch()”中的值

问题描述

这是一段重要的代码 -

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

我想访问“成员”中的变量,还想知道它是什么数据类型(对象、数组等)这是日志 -

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
    }
  }
}

例如,您如何存储此行中的用户 ID:

'518759221098053634' => GuildMember {

我认为这个问题有一个重复,但我认为那里的解决方案已经过时或使用不同的语言。

标签: javascriptdiscorddiscord.js

解决方案


公会会员fetch()是一个将返回的Promise


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."));

参考:


推荐阅读