【问题标题】:Member count but without bots (Discord.js Javascript)成员数但没有机器人(Discord.js Javascript)
【发布时间】:2020-09-03 15:20:15
【问题描述】:

我正在尝试让我的 Discord 机器人使用服务器的成员数更新锁定的语音频道,但我不知道如何让它过滤掉机器人。我在网上查看并尝试了不同的东西,但似乎没有一个对我有用。有人可以帮忙吗?

这是我的代码:

  let myGuild = client.guilds.cache.get("703315963583528991");
  let memberCount = myGuild.members.filter(member => !member.user.bot).size;
  let memberCountChannel = myGuild.channels.cache.get("704843759078211604");
  memberCountChannel.setName('Members: ' + memberCount);

这是错误:

TypeError: myGuild.members.filter is not a function
    at Client.<anonymous> (/root/onixo/index.js:21:37)
    at Client.emit (events.js:196:13)
    at WebSocketManager.triggerClientReady (/root/onixo/node_modules/discord.js/src/client/websocket/WebSocketManager.js:433:17)
    at WebSocketManager.checkShardsReady (/root/onixo/node_modules/discord.js/src/client/websocket/WebSocketManager.js:417:10)
    at WebSocketShard.<anonymous> (/root/onixo/node_modules/discord.js/src/client/websocket/WebSocketManager.js:199:14)
    at WebSocketShard.emit (events.js:196:13)
    at WebSocketShard.checkReady (/root/onixo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:467:12)
    at WebSocketShard.onPacket (/root/onixo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:439:16)
    at WebSocketShard.onMessage (/root/onixo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:293:10)
    at WebSocket.onMessage (/root/onixo/node_modules/ws/lib/event-target.js:120:16)

提前谢谢你。

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    那是因为你需要使用cache 来访问members 集合

    let myGuild = client.guilds.cache.get("703315963583528991");
    let memberCount = myGuild.members.cache.filter(member => !member.user.bot).size;
    let memberCountChannel = myGuild.channels.cache.get("704843759078211604");
    memberCountChannel.setName('Members: ' + memberCount);
    

    【讨论】:

    • 不知何故,我只获得了当前在语音频道中的用户数量。这段代码有什么问题或过时吗?
    • @julianYaman 我刚刚测试了它,它工作正常,也许你没有设置你的特权网关意图?您可以在应用程序页面的 Bot 选项卡中更改它们。在这种情况下,您必须启用 Server Members Intent 才能获取除您或您用于运行代码的机器人之外的任何人的 GuildMember 对象。
    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2021-01-06
    • 2021-12-08
    • 2021-09-27
    • 2021-12-29
    • 2020-10-29
    相关资源
    最近更新 更多