【问题标题】:Can't get actual members list on Discord.js v12无法在 Discord.js v12 上获取实际成员列表
【发布时间】:2021-05-17 20:29:34
【问题描述】:

当我尝试从我的 discord 服务器获取成员列表时,djsv12 会返回一个列表,但它只有 1 个条目。

事实上,应该有 23 个条目,因为这是我服务器上的成员数量。

我不明白出了什么问题。您可以在下面找到我的代码:

const Guild = client.guilds.cache.first(); // My one server

const Members = Guild.members.cache.map(member => member.id);

console.log(Members);

控制台:

[ '578565698461106204' ]

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    可能是因为只缓存了一个成员。请先尝试fetch所有成员。

    members.fetch() 从 Discord 中获取成员,即使他们处于离线状态并返回解析为 GuildMembers 集合的 promise:

    const guild = client.guilds.cache.first(); // My one server
    const members = await guild.members.fetch();
    const memberIDs = members.map((member) => member.id);
    
    console.log(memberIDs);
    

    PS:由于我使用的是 await 关键字,请确保您在 async function 中。

    【讨论】:

      【解决方案2】:

      我相信您遇到了与question 中提到的相同的问题。

      由于 Discord 一直在实施特权意图,这意味着您必须授予机器人访问某些数据的权限。此权限默认关闭。

      要打开它,只需转到Discord Developer Portal。然后选择您的 Application,然后转到左侧的 Bot 部分并向下滚动。您应该看到"Presence Intent""Server Members Intent" 这两个选项。


      资源:

      1. None of my discord.js guildmember events are emitting, my user caches are basically empty, and my functions are timing out?
      2. Discord.js Guide - Gateway Intents

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-26
        • 2017-03-27
        • 2021-09-29
        • 2020-11-21
        • 2021-05-10
        • 2021-01-11
        • 2021-11-15
        • 1970-01-01
        相关资源
        最近更新 更多