我的代码不计算一个人在语音通道上的停留时间。
这适用于运行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");
}
});
}
我希望它为语音通道上的每个用户计数他在该通道上的时间,并将其发送到数据库。
答案 0 :(得分:0)
很遗憾,.uptime
不是.voiceChannel
的属性。
在浏览了一段时间的文档之后,我看不到一种方法来查看它们在频道中的停留时间。
为此,我的解决方案是存储他们加入频道的时间,然后从他们离开的时间中减去。
希望我能帮上忙!