fix/handle null lastConnectionDate
This commit is contained in:
3 files changed
+15
-9
No files matched your search
@@ -42,13 +42,15 @@ async function migrate() {
|
|||||||
guild.server.playerstats.map(stat => stat.bountiesLength = stat.bounties.length);
|
guild.server.playerstats.map(stat => stat.bountiesLength = stat.bounties.length);
|
||||||
|
|
||||||
// write JSON to file
|
// write JSON to file
|
||||||
fs.writeFileSync(`${dir}/player_stats_backup.json`, JSON.stringify(guild.server.playerstats, null, 2));
|
// 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.`);
|
// 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 });
|
// const result = await players.insertMany(guild.server.playerstats, { ordered: true });
|
||||||
console.log(`${result.insertedCount} documents were inserted`);
|
// 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) {
|
} catch (err) {
|
||||||
throw new Error(`An error occured while attempting to migrate player stats: ${err}`)
|
throw new Error(`An error occured while attempting to migrate player stats: ${err}`)
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "dayzr-bot",
|
"name": "dayzr-bot",
|
||||||
"version": "12.0.2",
|
"version": "12.0.3",
|
||||||
"description": "A General Purpose Discord Bot for DayZ Nitrado Servers.",
|
"description": "A General Purpose Discord Bot for DayZ Nitrado Servers.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"nodemonConfig": {
|
"nodemonConfig": {
|
||||||
|
|||||||
+7
-3
@@ -75,11 +75,15 @@ module.exports = {
|
|||||||
|
|
||||||
let playerStat = await client.dbo.collection("players").findOne({"playerID": info.playerID});
|
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);
|
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 newDt = await client.getDateEST(info.time);
|
||||||
const unixTime = Math.round(newDt.getTime() / 1000); // Seconds
|
const unixTime = Math.round(newDt.getTime() / 1000); // Seconds
|
||||||
const oldUnixTime = Math.round(playerStat.lastConnectionDate.getTime() / 1000); // Seconds
|
if (playerStat.lastConnectionDate != null) {
|
||||||
const sessionTimeSeconds = unixTime - oldUnixTime;
|
oldUnixTime = Math.round(playerStat.lastConnectionDate.getTime() / 1000); // Seconds
|
||||||
|
sessionTimeSeconds = unixTime - oldUnixTime;
|
||||||
|
} else sessionTimeSeconds = 0;
|
||||||
if (!client.exists(playerStat.longestSessionTime)) playerStat.longestSessionTime = 0;
|
if (!client.exists(playerStat.longestSessionTime)) playerStat.longestSessionTime = 0;
|
||||||
|
|
||||||
playerStat.totalSessionTime = playerStat.totalSessionTime + sessionTimeSeconds;
|
playerStat.totalSessionTime = playerStat.totalSessionTime + sessionTimeSeconds;
|
||||||
|
|||||||
Reference in new issue
Block a user