Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 将Discord Bot Activity设置为联机用户数。Discord.js_Javascript_Discord.js - Fatal编程技术网

Javascript 将Discord Bot Activity设置为联机用户数。Discord.js

Javascript 将Discord Bot Activity设置为联机用户数。Discord.js,javascript,discord.js,Javascript,Discord.js,我希望机器人状态显示当前在线人数。我一直在尝试使用此代码,但它一直在说: TypeError:client.guilds.get不是函数 由于discord.js v12,您现在需要使用cache属性访问guilds集合,因此您需要替换var guild=client.guilds.get('id here')带有var guild=client.guilds.cache.get('id here') 与问题无关: 您正在获取guild,并对其进行过滤以获取该guild中的在线用户数,问题是m

我希望机器人状态显示当前在线人数。我一直在尝试使用此代码,但它一直在说:

TypeError:client.guilds.get不是函数


由于discord.js v12,您现在需要使用
cache
属性访问
guilds
集合,因此您需要替换
var guild=client.guilds.get('id here')带有
var guild=client.guilds.cache.get('id here')


与问题无关: 您正在获取
guild
,并对其进行过滤以获取该guild中的在线用户数,问题是
memberCount
返回一个
number
而不是一个s的集合,您需要使用的是属性,要访问该集合,您需要再次使用
缓存

var onlineCount=guild.members.cache.filter(m=>m.presence.status==='online')。大小

如果我还想过滤idle和dnd。这在同一行中可能吗?
filter(m=>m.presence.status=='online'| | m.presence.status=='dnd'| | m.presence.status=='idle')
我刚刚意识到我也可以这么做“脱机”,这将产生相同的结果xD
//Checks if the bot is online
client.once('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);

  //Activity
  var guild = client.guilds.get('id here');
  var onlineCount = guild.membersCount.filter(m => m.presence.status === 'online').size
    client.user.setActivity('games with ' + onlineCount + ' people' , { type: 'PLAYING' });
});