首页 > 解决方案 > 会员网上柜台

问题描述

我的会员计数器不起作用为什么我的频道总是名称为“在线 0”0 错误,控制台日志工作我不知道为什么这是我的代码

    const guild = client.guilds.cache.get('693805106906398722');
    setInterval(() =>{
        const memberCount = guild.memberCount;
        const channel = guild.channels.cache.get('824050164376666182');
        channel.setName(`Użytkownicy ${memberCount.toLocaleString()}`);
        console.log('Member Status: Updating...');
    }, 1200000);
   setInterval(() =>{
        
            const memberCollection = guild.members.cache;
            const online = memberCollection.filter(member => {
            member.presence.status === 'online'
        }).size;

        const channel1 = guild.channels.cache.get('824050194177720391');
        channel1.setName(`Online ${online}`);
        console.log('Member online Status: Updating...');
        
    }, 1200); 

} ``` 

标签: javascriptdiscord.js

解决方案


  1. 您的机器人中是否启用了意图?如果您不这样做:那么请在 Discord Developers Portal 中为您的应用程序执行此操作。您需要启用Guild Members意图。另外请不要忘记在客户端构造器(又名const client = new Discord.Client())中更新您的内容,以便您可以访问公会成员信息!

  2. 代码有错误

const online = memberCollection.filter(member => {
    member.presence.status === 'online'
}).size;

请做好

const online = memberCollection.filter(member => {
    return member.presence.status === 'online'
}).size;

由于要使过滤器工作,您需要有一个返回布尔值的函数,并且您没有从过滤器函数返回任何内容,所以它有点混乱。


推荐阅读