频道中的人员时间计数

时间:2019-02-05 15:10:11

标签: javascript discord.js

我的代码不计算一个人在语音通道上的停留时间。
这适用于运行js和sqlite的我的不和谐服务器。我只试过了那个代码

module.exports.run = async(bot, message, args) => {
  bot.on('voiceStateUpdate', (oldMember, newMember) => {
    let newUserChannel = newMember.voiceChannel;
    let oldUserChannel = oldMember.voiceChannel;

    if (oldUserChannel === undefined && newUserChannel !== undefined) {
      let totalSeconds = (newUserChannel.uptime / 1000);
      let days = Math.floor(totalSeconds / 86400);
      let hours = Math.floor(totalSeconds / 3600);
      totalSeconds %= 3600;
      let minutes = Math.floor(totalSeconds / 60);
      let seconds = totalSeconds % 60;
      let uptime = `${days} days, ${hours} hours, ${minutes} minutes and ${seconds} seconds`;
      console.log(uptime);
      console.log("hi");
    } else if (newUserChannel === undefined) {
      console.log("bye");
    }
  });
}

我希望它为语音通道上的每个用户计数他在该通道上的时间,并将其发送到数据库。

1 个答案:

答案 0 :(得分:0)

很遗憾,.uptime不是.voiceChannel的属性。

在浏览了一段时间的文档之后,我看不到一种方法来查看它们在频道中的停留时间。

为此,我的解决方案是存储他们加入频道的时间,然后从他们离开的时间中减去。

希望我能帮上忙!

来源: Discord.JS Docs for #VoiceChannel