diff --git a/admin/migrate_playerstats.js b/admin/migrate_playerstats.js index c562a77..7373a96 100644 --- a/admin/migrate_playerstats.js +++ b/admin/migrate_playerstats.js @@ -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}`) diff --git a/package.json b/package.json index 898a421..2111862 100644 --- a/package.json +++ b/package.json @@ -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": { diff --git a/util/LogsHandler.js b/util/LogsHandler.js index ac5c7c9..a9bccad 100644 --- a/util/LogsHandler.js +++ b/util/LogsHandler.js @@ -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;