首页 > 解决方案 > 成员数但没有机器人(Discord.js Javascript)

问题描述

我试图让我的 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)

先感谢您。

标签: javascriptdiscord.js

解决方案


那是因为你需要使用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);

推荐阅读