Discord 机器人在频道名称中显示会员编号

Posted

技术标签:

【中文标题】Discord 机器人在频道名称中显示会员编号【英文标题】:Discord bot showing member number in the channel name 【发布时间】: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 增加或减少时更新数字,我将有示例的照片)。你能告诉我怎么做,并详细解释你做了什么,但在菜鸟级别,因为我对编码很陌生?

【问题讨论】:

【参考方案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 您是否在此处存储所有事件?为什么不把它们分开?

以上是关于Discord 机器人在频道名称中显示会员编号的主要内容,如果未能解决你的问题,请参考以下文章

客户端连接但不会在 Discord 语音频道中播放音乐

机器人没有创建频道 - Discord.js

Discord 使用机器人制作频道

Discord.js 机器人在频道中的 10 条消息后发送消息

Discord.JS 如何等待会员反应

如何使用 nodeJS 和 discordJS 更改 Discord 频道名称?