xyligan
Паркетный пол трещит под моей крышкой черепной
- Сообщения
- 900
- Реакции
- 433
Доброго времени суток, друзья! Решил значит я написать систему фиксации времени проведённого пользователем в голосовых каналах. Значит сделал всё вроде по уму, но есть проблема. При генерации Date.now() есть такой баг или я незнаю как это назвать. Вот в чём фишка: при генерации числа может выпасть обычное число(которое нам не подходит), а может выпасть число к примеру 43520(которое нам необходимо). Естественно, когда генерируется необходимое нам число, то всё считается отлично, но когда генерируется число, которое нам не подходит, то всё считается в следующем виде
Когда же генерируется нужно число, то всё считается в таком виде
Ниже предоставляю код и скриншот консоли, возможно кто-то знает как исправить данный баг или ошибку. Буду рад услышать советы!
Когда же генерируется нужно число, то всё считается в таком виде
Ниже предоставляю код и скриншот консоли, возможно кто-то знает как исправить данный баг или ошибку. Буду рад услышать советы!
JavaScript:
const Discord = require('discord.js');
const client = new Discord.Client({
partials: ['MESSAGE', 'CHANNEL', 'REACTION'],
});
const quick = require('quick.db');
client.on('voiceStateUpdate', async(oldState, newState) => {
if (!oldState.channel && newState.channel) {
var startTime = Date.now();
console.log(startTime);
let checkBase = quick.fetch(`voiceTime.${newState.member.id}`);
if(checkBase == null) quick.set(`voiceTime.${newState.member.id}`, startTime);
}else if (!newState.channel) {
var endTime = Date.now();
let checkBase = quick.fetch(`voiceTime.${oldState.member.id}`);
if(checkBase == null) return;
let time = Math.floor(endTime - checkBase);
console.log(time);
quick.set(`voiceTime.${oldState.member.id}`, time);
}
});
JavaScript:
const prefix = '!';
if(cmd === `${prefix}voiceTime`) {
let checkBase = quick.fetch(`voiceTime.${message.author.id}`);
if(checkBase == null) return message.channel.send('Error!');
const seconds = Math.floor((checkBase / 1000) % 60);
const minutes = Math.floor((checkBase / 1000 / 60) % 60);
const hours = Math.floor((checkBase / 1000 / 60 / 60) % 24);
const days = Math.floor(checkBase / 1000 / 60 / 60 / 24);
message.channel.send(`${message.author}, Вы находились в войсе: **${days}** дн., **${hours}** час., **${minutes}** мин., **${seconds}** сек.`);
}