Javascript 将Discord Bot Activity设置为联机用户数。Discord.js
我希望机器人状态显示当前在线人数。我一直在尝试使用此代码,但它一直在说: TypeError:client.guilds.get不是函数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
由于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' });
});