update/track-longest-session-time

This commit is contained in:
SowinskiBraeden committed 2023-09-02 22:14:29 -07:00
1 parent 55fb1ec593
commit f451817416
5 files changed
+25 -17

No files matched your search

+10 -6
View File
@@ -18,7 +18,8 @@ module.exports = {
required: true, required: true,
choices: [ choices: [
{ name: "money", value: "money" }, { name: "money", value: "money" },
{ name: "time_played", value: "time_played" }, { name: "total_time_played", value: "total_time_played" },
{ name: "longest_time_played", value: "longest_time_played" },
{ name: "kills", value: "kills" }, { name: "kills", value: "kills" },
{ name: "killstreak", value: "killstreak" }, { name: "killstreak", value: "killstreak" },
{ name: "best_killstreak", value: "best_killstreak" }, { name: "best_killstreak", value: "best_killstreak" },
@@ -66,7 +67,8 @@ module.exports = {
if (category == 'deathstreak') return b.deathStreak - a.deathSreak; if (category == 'deathstreak') return b.deathStreak - a.deathSreak;
if (category == 'worst_deathstreak') return b.worstDeathStreak - a.worstDeathStreak; if (category == 'worst_deathstreak') return b.worstDeathStreak - a.worstDeathStreak;
if (category == 'longest_kill') return b.longestKill - a.longestKill; if (category == 'longest_kill') return b.longestKill - a.longestKill;
if (category == 'time_played') return b.totalSessionTime - a.totalSessionTime; if (category == 'total_time_played') return b.totalSessionTime - a.totalSessionTime;
if (category == 'longest_time_played') return b.longestSessionTime - a.longestSessionTime;
}); });
} }
@@ -84,7 +86,8 @@ module.exports = {
category == 'worst_deathstreak' ? "Worst Deathstreak Leaderboard" : category == 'worst_deathstreak' ? "Worst Deathstreak Leaderboard" :
category == 'longest_kill' ? "Longest Kill Leaderboard" : category == 'longest_kill' ? "Longest Kill Leaderboard" :
category == 'money' ? "Money Leaderboard" : category == 'money' ? "Money Leaderboard" :
category == 'time_played' ? "Time Played" : 'N/A Error'; category == 'total_time_played' ? "Total Time Played" :
category == 'longest_time_played' ? "Longest Game Session" : 'N/A Error';
leaderboardEmbed.setTitle(`**${title} - DayZ Reforger**`); leaderboardEmbed.setTitle(`**${title} - DayZ Reforger**`);
@@ -100,16 +103,17 @@ module.exports = {
category == 'worst_deathstreak' ? `${leaderboard[i].worstDeathStreak} Deathstreak` : category == 'worst_deathstreak' ? `${leaderboard[i].worstDeathStreak} Deathstreak` :
category == 'longest_kill' ? `${leaderboard[i].longestKill}m` : category == 'longest_kill' ? `${leaderboard[i].longestKill}m` :
category == 'money' ? `$${(leaderboard[i].user.guilds[GuildDB.serverID].balance).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}` : category == 'money' ? `$${(leaderboard[i].user.guilds[GuildDB.serverID].balance).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}` :
category == 'time_played' ? `**Total:** ${client.secondsToDhms(leaderboard[i].totalSessionTime)}\n> **Last Session:** ${leaderboard[i].lastSessionTime}` : 'N/A Error'; category == 'total_time_played' ? `**Total:** ${client.secondsToDhms(leaderboard[i].totalSessionTime)}\n> **Last Session:** ${client.secondsToDhms(leaderboard[i].lastSessionTime)}` :
category == 'longest_time_played' ? `**Longest Game Session:** ${client.secondsToDhms(leaderboard[i].longestSessionTime)}` : 'N/A Error';
if (category == 'money') des += `**${i+1}.** <@${leaderboard[i].user.userID}> - **${stats}**\n` if (category == 'money') des += `**${i+1}.** <@${leaderboard[i].user.userID}> - **${stats}**\n`
else if (category == 'time_played') { else if (category == 'total_time_played' || category == 'longest_time_played') {
tag = leaderboard[i].discordID != "" ? `<@${leaderboard[i].discordID}>` : leaderboard[i].gamertag; tag = leaderboard[i].discordID != "" ? `<@${leaderboard[i].discordID}>` : leaderboard[i].gamertag;
des += `**${i+1}.** ${tag}\n> ${stats}\n\n`; des += `**${i+1}.** ${tag}\n> ${stats}\n\n`;
} else leaderboardEmbed.addFields({ name: `**${i+1}. ${leaderboard[i].gamertag}**`, value: `**${stats}**`, inline: true }); } else leaderboardEmbed.addFields({ name: `**${i+1}. ${leaderboard[i].gamertag}**`, value: `**${stats}**`, inline: true });
} }
if (category == 'money' || category == 'time_played') leaderboardEmbed.setDescription(des); if (['money', 'total_time_played', 'longest_time_played'].includes(category)) leaderboardEmbed.setDescription(des);
return interaction.send({ embeds: [leaderboardEmbed] }); return interaction.send({ embeds: [leaderboardEmbed] });
}, },
+10 -5
View File
@@ -18,7 +18,8 @@ module.exports = {
required: true, required: true,
choices: [ choices: [
{ name: "money", value: "money" }, { name: "money", value: "money" },
{ name: "time_played", value: "time_played" }, { name: "total_time_played", value: "total_time_played" },
{ name: "longest_time_played", value: "longest_time_played" },
{ name: "kills", value: "kills" }, { name: "kills", value: "kills" },
{ name: "killstreak", value: "killstreak" }, { name: "killstreak", value: "killstreak" },
{ name: "best_killstreak", value: "best_killstreak" }, { name: "best_killstreak", value: "best_killstreak" },
@@ -93,7 +94,8 @@ module.exports = {
if (category == 'deathstreak') return b.deathStreak - a.deathSreak; if (category == 'deathstreak') return b.deathStreak - a.deathSreak;
if (category == 'worst_deathstreak') return b.worstDeathStreak - a.worstDeathStreak; if (category == 'worst_deathstreak') return b.worstDeathStreak - a.worstDeathStreak;
if (category == 'longest_kill') return b.longestKill - a.longestKill; if (category == 'longest_kill') return b.longestKill - a.longestKill;
if (category == 'time_played') return b.totalSessionTime - a.totalSessionTime; if (category == 'total_time_played') return b.totalSessionTime - a.totalSessionTime;
if (category == 'longest_time_played') return b.longestSessionTime - a.longestSessionTime;
}); });
if (discord) { // If searching by discord if (discord) { // If searching by discord
@@ -119,7 +121,8 @@ module.exports = {
category == 'worst_deathstreak' ? "Worst Deathstreak" : category == 'worst_deathstreak' ? "Worst Deathstreak" :
category == 'longest_kill' ? "Longest Kill" : category == 'longest_kill' ? "Longest Kill" :
category == 'money' ? "Total Money" : category == 'money' ? "Total Money" :
category == 'time_played' ? "Time Played" : 'N/A Error'; category == 'total_time_played' ? "Total Time Played" :
category == 'longest_time_played' ? "Longest Game Session" : 'N/A Error';
let statsEmbed = new EmbedBuilder() let statsEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Default); .setColor(client.config.Colors.Default);
@@ -142,11 +145,13 @@ module.exports = {
statsEmbed.addFields({ name: 'Leaderboard Position', value: `# ${leaderboardPos}`, inline: true }); statsEmbed.addFields({ name: 'Leaderboard Position', value: `# ${leaderboardPos}`, inline: true });
if (category == 'time_played') { if (category == 'total_time_played') {
statsEmbed.addFields( statsEmbed.addFields(
{ name: 'Total Time Played', value: client.secondsToDhms(query.totalSessionTime), inline: true }, { name: 'Total Time Played', value: client.secondsToDhms(query.totalSessionTime), inline: true },
{ name: 'Last Session Time', value: query.lastSessionTime, inline: true } { name: 'Last Session Time', value: client.secondsToDhms(query.lastSessionTime), inline: true }
); );
} else if (category == 'longest_time_played') {
statsEmbed.addFields({ name: 'Longest Game Session', value: client.secondsToDhms(query.longestSessionTime), inline: true });
} else statsEmbed.addFields({ name: title, value: stats, inline: true }); } else statsEmbed.addFields({ name: title, value: stats, inline: true });
return interaction.send({ embeds: [statsEmbed] }); return interaction.send({ embeds: [statsEmbed] });
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "dayzr-bot", "name": "dayzr-bot",
"version": "9.1.5", "version": "9.2.0",
"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": {
+2 -1
View File
@@ -392,7 +392,8 @@ class DayzRBot extends Client {
lastHitBy: null, lastHitBy: null,
connected: false, connected: false,
totalSessionTime: 0, totalSessionTime: 0,
lastSessionTime: "", lastSessionTime: 0,
longestSessionTime: 0,
bounties: [], bounties: [],
} }
} }
+2 -4
View File
@@ -60,17 +60,15 @@ module.exports = {
let playerStat = stats.find(stat => stat.playerID == info.playerID) let playerStat = stats.find(stat => stat.playerID == info.playerID)
let playerStatIndex = stats.indexOf(playerStat); let playerStatIndex = stats.indexOf(playerStat);
if (playerStat == undefined) playerStat = client.getDefaultPlayerStats(info.player, info.playerID); if (playerStat == undefined) playerStat = client.getDefaultPlayerStats(info.player, info.playerID);
if (!client.exists(playerStat.totalSessionTime)) playerStat.totalSessionTime = 0;
let newDt = await client.getDateEST(info.time); let newDt = await client.getDateEST(info.time);
let unixTime = Math.floor(newDt.getTime()/1000); let unixTime = Math.floor(newDt.getTime()/1000);
if (!client.exists(playerStat.lastConnectionDate)) playerStat.lastConnectionDate = await client.getDateEST(info.time);
let oldUnixTime = Math.floor(playerStat.lastConnectionDate.getTime()/1000); let oldUnixTime = Math.floor(playerStat.lastConnectionDate.getTime()/1000);
let seconds = unixTime - oldUnixTime; let seconds = unixTime - oldUnixTime;
let sessionTime = client.secondsToDhms(seconds);
playerStat.totalSessionTime = playerStat.totalSessionTime + seconds; playerStat.totalSessionTime = playerStat.totalSessionTime + seconds;
playerStat.lastSessionTime = sessionTime; playerStat.lastSessionTime = seconds;
playerStat.longestSessionTime = seconds > playerStat.longestSessionTime ? seconds : playerStat.longestSessionTime;
if (playerStatIndex == -1) stats.push(playerStat); if (playerStatIndex == -1) stats.push(playerStat);
else stats[playerStatIndex] = playerStat; else stats[playerStatIndex] = playerStat;