fix/handle null lastConnectionDate

This commit is contained in:
SowinskiBraeden committed 2023-10-29 14:18:47 -07:00
1 parent 089005e2a7
commit 894aba1a7b
3 files changed
+15 -9

No files matched your search

+7 -5
View File
@@ -42,13 +42,15 @@ async function migrate() {
guild.server.playerstats.map(stat => stat.bountiesLength = stat.bounties.length);
// write JSON to file
fs.writeFileSync(`${dir}/player_stats_backup.json`, JSON.stringify(guild.server.playerstats, null, 2));
console.log(`A backup of playerstats was successfully created in ./backup/player_stats_backup.json in case of a fatal error.`);
// fs.writeFileSync(`${dir}/player_stats_backup.json`, JSON.stringify(guild.server.playerstats, null, 2));
// console.log(`A backup of playerstats was successfully created in ./backup/player_stats_backup.json in case of a fatal error.`);
const result = await players.insertMany(guild.server.playerstats, { ordered: true });
console.log(`${result.insertedCount} documents were inserted`);
// const result = await players.insertMany(guild.server.playerstats, { ordered: true });
// console.log(`${result.insertedCount} documents were inserted`);
// delete guild.server.playerstats;
delete guild.server.playerstats;
await guilds.updateOne({"server.serverID": guildId}, {$set: guild});
} catch (err) {
throw new Error(`An error occured while attempting to migrate player stats: ${err}`)
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "dayzr-bot",
"version": "12.0.2",
"version": "12.0.3",
"description": "A General Purpose Discord Bot for DayZ Nitrado Servers.",
"main": "index.js",
"nodemonConfig": {
+7 -3
View File
@@ -75,11 +75,15 @@ module.exports = {
let playerStat = await client.dbo.collection("players").findOne({"playerID": info.playerID});
if (!client.exists(playerStat)) playerStat = getDefaultPlayer(info.player, info.playerID, client.config.Nitrado.ServerID);
let oldUnixTime;
let sessionTimeSeconds;
const newDt = await client.getDateEST(info.time);
const unixTime = Math.round(newDt.getTime() / 1000); // Seconds
const oldUnixTime = Math.round(playerStat.lastConnectionDate.getTime() / 1000); // Seconds
const sessionTimeSeconds = unixTime - oldUnixTime;
if (playerStat.lastConnectionDate != null) {
oldUnixTime = Math.round(playerStat.lastConnectionDate.getTime() / 1000); // Seconds
sessionTimeSeconds = unixTime - oldUnixTime;
} else sessionTimeSeconds = 0;
if (!client.exists(playerStat.longestSessionTime)) playerStat.longestSessionTime = 0;
playerStat.totalSessionTime = playerStat.totalSessionTime + sessionTimeSeconds;