Логирование войс активности discord.js?
Всем доброго времени суток, у меня есть слушатель событий voiceStateUpdate, мне необходимо добавлять в таблицу пользователя время, которое он провёл в голосовом канале. (каждые 5 секунд). Но есть несколько проблем:
Функция addVoiceTime выполняется не только при подключении пользователя к голосовому каналу, но и при попытке выключить/включить микрофон, наушники.
При отключении пользователя от голосового канала эта функция не должна больше выполнятся, setInterval(или может что-то другое) должен очищаться.
if ( (oldState.channelId === null && newState.channelId !== null) || (oldState.channelId && newState.channelId !== null)) { async function addVoiceTime() { if (!newState.channelId) return //if (newState.channel.members.size < 2) return if (newState.selfMute == true) return if (newState.selfDeaf == true) return await dbQuery( `INSERT INTO users (user_id) VALUES ($1) ON CONFLICT (user_id) DO UPDATE SET voice_time = users.voice_time + 5000`, (values = [`${newState.id}`]) ) console.log(`Added Voice Time For ${newState.id}`) } setInterval(addVoiceTime, 5000)}