Как считать время проведенное в голосовом канале?
У меня есть код, который реагирует на вход в голосовой, и выход из него. При входе пишется "кто и куда присоединился", при выходе "кто откуда вышел". Как мне его изменить, чтобы он еще и считал время проведенное в голосовом канале?
global.bot.on('voiceStateUpdate', (oldState, newState) => {
const date = new Date();
const member = newState.member;
const currenttime = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
const oldchan = oldState.channel;
const newchan = newState.channel;
if (newchan != oldchan) {
if (oldchan) {
if (newchan) {
console.log(`${currenttime} - ${member.nickname || member.user.username} сменил канал с ${oldchan.name} на ${newchan.name}`);
}
else {
console.log(`${currenttime} - ${member.nickname || member.user.username} ушёл ${oldchan.name}`);
}
}
else if (newchan) {
console.log(`${currenttime} - ${member.nickname || member.user.username} присоединился ${newchan.name}`);
}
}
});
Ответы (1 шт):
Автор решения: unknwxxn
→ Ссылка
global.bot.on('voiceStateUpdate', (oldState, newState) => {
const date = new Date();
const member = newState.member;
const currenttime = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
const oldchan = oldState.channel;
const newchan = newState.channel;
if (newchan != oldchan) {
if (oldchan) {
if (newchan) {
console.log(`${currenttime} - ${member.nickname || member.user.username} сменил канал с ${oldchan.name} на ${newchan.name}`);
}
else {
let leaveTime = Date.parse(new Date); //фиксация времени в мс при выходе из канала
let currentTime = (leaveTime-joinTime) / 1000; // проведенное время в секундах
console.log(`Прошло ${currentTime} секунд`);
console.log(`${currenttime} - ${member.nickname || member.user.username} ушёл ${oldchan.name}`);
}
}
else if (newchan) {
global.joinTime = Date.parse(new Date); // фиксация времени в мс при входе в канал
console.log(`${currenttime} - ${member.nickname || member.user.username} присоединился ${newchan.name}`);
}
}
});
```