discord.js 语音频道成员数

时间:2021-01-26 06:55:05

标签: javascript node.js discord.js

我遇到的问题是,成员计数的机器人只更新一次,之后什么都不做。有人知道如何解决吗?Here you see a picture of a public counter bot on the right and on the left is my bot with the channel

这是我当前的代码:

bot.on("ready", () => {
    const guild = bot.guilds.cache.get('779790603131158559');
    setInterval(() => {
        const memberCount = guild.memberCount;
        const channel = guild.channels.cache.get('802083835092795442')
        channel.setName(`DC︱Member: ${memberCount.toLocaleString()}`)
    }, 5000);
});

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您想将 VC 重命名为成员数。 Discord API 只允许您每 10 分钟重命名频道 2 次。您正在尝试每 5 秒运行一次该代码。

尝试将超时延迟设置为 600000 而不是 5000

答案 1 :(得分:0)

您可以尝试使用 voiceStateUpdate,每次用户离开、进入、使麦克风静音或取消麦克风静音时都会触发它。这是它的链接:voiceStatusUpdate

如果您想获取频道的 ID,也可以使用 voiceChannelID。这是一个链接:voiceChannelID

以下是您可以使用的代码的基本概念:

bot.on('voiceStateUpdate', (oldMember, newMember) => {
  let newUserChannel = newMember.voiceChannel
  let oldUserChannel = oldMember.voiceChannel


  if(oldUserChannel === undefined && newUserChannel !== undefined) {

     // User Joins a voice channel

  } else if(newUserChannel === undefined){

    // User leaves a voice channel

  }
})