【问题标题】:Discord bot showing member number in the channel nameDiscord 机器人在频道名称中显示会员编号
【发布时间】:2021-09-04 03:15:39
【问题描述】:

这是我目前的代码:

    setInterval(function () {
    let myGuild = client.guilds.cache.get("0000000000000");
    let memberNumber = myGuild.members.cache.filter(member => !member.user.bot).size;

    }, 1000);

正如您可能在这里所说的那样,我已经成功地创建了一个 Discord 机器人来计算我服务器上的成员数量,不包括机器人,并在 Discord.JS 中每隔一秒检查一次。 我不知道该怎么做是在频道名称中显示该数字并使其不断更新,就像“ServerStats”Discord 机器人那样。 (比如有频道名称 Members: 1,并且当 memberCount 增加或减少时更新数字,我将有示例的照片)。你能告诉我怎么做,并详细解释你做了什么,但在菜鸟级别,因为我对编码很陌生?

【问题讨论】:

    标签: node.js discord discord.js bots


    【解决方案1】:

    首先,在 guildMemberAdd 事件中运行它可能更容易,而不是每秒更新一次,这样您就不会向 API 发送垃圾邮件。

    这可能是你想要的更多:

    client.on("guildMemberAdd", function(member){
        let myGuild = member.guild
        let myChannel = myGuild.channels.cache.get("CHANNEL ID HERE");
        let memberNumber = myGuild.members.cache.filter(member => !member.user.bot).size;
        myChannel.name = `Members: ${memberNumber}`
    })
    

    【讨论】:

    • 这个多久更新一次,如果你能稍微解释一下代码,是不是每次添加新成员时都会更新?
    • 每次有会员加入都会更新。我也忘了提到最好将相同的代码添加到 guildMemberRemove 事件中,以便在成员离开时更新
    • 我不断收到这个错误:events.js:131 throw new ERR_INVALID_ARG_TYPE('listener', 'Function', listener);在这一行: let memberNumber = myGuild.members.cache.filter(member => !member.user.bot).size;
    • > events.js:131 您是否在此处存储所有事件?为什么不把它们分开?
    猜你喜欢
    • 2021-01-27
    • 2023-03-14
    • 2017-09-16
    • 2020-07-16
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2021-10-14
    相关资源
    最近更新 更多