diff --git a/database/player.js b/database/player.js index cdd6f33..d6e67d3 100644 --- a/database/player.js +++ b/database/player.js @@ -107,5 +107,16 @@ module.exports = { timesShotPerBodyPart: copy(BodyParts), }); return player; + }, + + // If a new weapon is not in the existing weaponStats, this will add it. + createWeaponStats(player, weapon) { + player.weaponStats[weapon] = { + shotsLanded: 0, + timesShot: 0, + shotsLandedPerBodyPart: copy(BodyParts), + timesShotPerBodyPart: copy(BodyParts), + } + return player; } } diff --git a/package.json b/package.json index ad97871..831933e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dayzr-bot", - "version": "12.3.15", + "version": "12.3.16", "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 5c99a0e..9156e95 100644 --- a/util/LogsHandler.js +++ b/util/LogsHandler.js @@ -3,7 +3,7 @@ const { HandleAlarmsAndUAVs } = require('./AlarmsHandler'); const { SendConnectionLogs, DetectCombatLog } = require('./AdminLogsHandler'); const { getDefaultPlayer } = require('../database/player'); const { FetchServerSettings } = require('../util/NitradoAPI'); -const { UpdatePlayer, insertPVPstats } = require('../database/player') +const { UpdatePlayer, insertPVPstats, createWeaponStats } = require('../database/player') let lastSendMessage; @@ -184,11 +184,13 @@ module.exports = { if (info.weapon in playerStat.weaponStats) { playerStat.timesShot++; playerStat.timesShotPerBodyPart[info.bodyPart]++; + if (!client.exists(playerStat.weaponStats[info.weapon])) playerStat = createWeaponStats(playerStat, info.weapon); playerStat.weaponStats[info.weapon].timesShot++; playerStat.weaponStats[info.weapon].timesShotPerBodyPart[info.bodyPart]++; attackerStat.shotsLanded++; attackerStat.shotsLandedPerBodyPart[info.bodyPart]++; + if (!client.exists(attackerStat.weaponStats[info.weapon])) attackerStat = createWeaponStats(attackerStat, info.weapon); attackerStat.weaponStats[info.weapon].shotsLanded++; attackerStat.weaponStats[info.weapon].shotsLandedPerBodyPart[info.bodyPart]++; }