Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DiscordJS在线成员数_Javascript_Discord_Discord.js - Fatal编程技术网

Javascript DiscordJS在线成员数

Javascript DiscordJS在线成员数,javascript,discord,discord.js,Javascript,Discord,Discord.js,我正在制作我的discord管理机器人(仅适用于我的服务器),我正在尝试做在线会员计数器。我试过这个: client.guilds.cache.get(ids.serverID).members .filter(m=>m.presence.status===“online”).size; 它给出了这个错误: var online = client.guilds.cache.get(ids.serverID).members.filter(m => m.presence.status ==

我正在制作我的discord管理机器人(仅适用于我的服务器),我正在尝试做在线会员计数器。我试过这个:

client.guilds.cache.get(ids.serverID).members
.filter(m=>m.presence.status===“online”).size;
它给出了这个错误:

var online = client.guilds.cache.get(ids.serverID).members.filter(m => m.presence.status === 'online').size;
                                                           ^
TypeError: client.guilds.cache.get(...).members.filter is not a function
    at Client.<anonymous> (/home/cyril/Documents/ALPHA-Admin/main.js:40:62)
    at Client.emit (events.js:315:20)
    at PresenceUpdateAction.handle (/home/cyril/Documents/ALPHA-Admin/node_modules/discord.js/src/client/actions/PresenceUpdate.js:39:19)
    at Object.module.exports [as PRESENCE_UPDATE] (/home/cyril/Documents/ALPHA-Admin/node_modules/discord.js/src/client/websocket/handlers/PRESENCE_UPDATE.js:4:33)
    at WebSocketManager.handlePacket (/home/cyril/Documents/ALPHA-Admin/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (/home/cyril/Documents/ALPHA-Admin/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (/home/cyril/Documents/ALPHA-Admin/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (/home/cyril/Documents/ALPHA-Admin/node_modules/ws/lib/event-target.js:132:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (/home/cyril/Documents/ALPHA-Admin/node_modules/ws/lib/websocket.js:825:20)
var-online=client.guilds.cache.get(ids.serverID.members.filter(m=>m.presence.status=='online').size;
^
TypeError:client.guilds.cache.get(…).members.filter不是函数
在客户端。(/home/cyril/Documents/ALPHA-Admin/main.js:40:62)
在Client.emit(events.js:315:20)
在PresenceUpdateAction.handle(/home/cyril/Documents/ALPHA Admin/node_modules/discord.js/src/client/actions/PresenceUpdate.js:39:19)
在Object.module.exports[作为状态更新](/home/cyril/Documents/ALPHA Admin/node\u modules/discord.js/src/client/websocket/handlers/PRESENCE\u UPDATE.js:4:33)
在WebSocketManager.handlePacket(/home/cyril/Documents/ALPHA Admin/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
在WebSocketShard.onPacket(/home/cyril/Documents/ALPHA Admin/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
在WebSocketShard.onMessage(/home/cyril/Documents/ALPHA Admin/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
在WebSocket.onMessage(/home/cyril/Documents/ALPHA Admin/node_modules/ws/lib/event target.js:132:16)
在WebSocket.emit(events.js:315:20)
在Receiver.receiverOnMessage(/home/cyril/Documents/ALPHA Admin/node_modules/ws/lib/websocket.js:825:20)
谁能帮帮我吗?谢谢。

该属性不是数组,它是一个原型中没有
.filter()
方法的数组。尝试访问成员列表的缓存,该缓存将返回类型为
集合的集合
,与GuildMemberManager不同,该类型确实有一个方法,该方法将返回一个,然后您可以获得以下大小的集合:

client.guilds.cache.get(ids.serverID).members.cache
  .filter(m => m.presence.status === 'online').size;

members
实际上是数组还是对象?您能否将
成员
存储到数组中,然后计算
数组。isArray(成员)
?它认为它现在工作正常,显示的是错误的数字!我的代码:但它说29个在线和6个离线,甚至32个在线和13个离线+9机器人应该有54个成员,而且它说这些奇怪的数字为什么?§@nicoebd这是因为它测量缓存的成员,它将不准确,因为一些成员不会被缓存。不幸的是,这是我们无法解决的问题。我不会执行“成员计数”命令,因为它永远不会准确,请关注可以高精度完成的事情。@Proto您是说,我不能进行准确的在线/离线统计,所以成员计数器(服务器上的成员数)可以准确吗?至少在正常范围内。。。。这个服务器现在有54个成员,在它存在大约5个月之后,我认为它永远不会超过1000,所以在这个范围内,成员计数器准确吗?是的,这是正确的,非常感谢