add monthly and alltime stat commands

This commit is contained in:
2025-07-28 19:22:43 +02:00
parent ecd5909acf
commit f9615b77e6
5 changed files with 141 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
import { Command, sendMessage } from "commands";
import { getTimeoutStats, getItemStats } from "lib/getStats";
import parseCommandArgs from "lib/parseCommandArgs";
import User from "user";
export default new Command('alltimestats', ['alltime', 'alltimestats'], 'chatter', async (msg, user) => {
const args = parseCommandArgs(msg.messageText);
let target: User | null = user;
if (args[0]) {
target = await User.initUsername(args[0]);
if (!target) { await sendMessage(`User ${args[0]} doesn't exist!`, msg.messageId); return; };
};
const [timeout, item] = await Promise.all([getTimeoutStats(target, false), getItemStats(target, false)]);
if (!timeout || !item) { await sendMessage(`ERROR: Something went wrong!`, msg.messageId); return; };
const KD = timeout.shot.blaster / timeout.hit.blaster;
await sendMessage(`
Alltime: stats of ${target.displayName}:
Users blasted: ${timeout.shot.blaster},
Blasted by others: ${timeout.hit.blaster} (${isNaN(KD) ? 0 : KD.toFixed(2)} K/D).
Grenades lobbed: ${item.grenade},
TNT exploded: ${item.tnt}.
Silver bullets fired: ${timeout.shot.silverbullet},
Silver bullets taken: ${timeout.hit.silverbullet}.
`, msg.messageId);
});

View File

@@ -0,0 +1,28 @@
import { Command, sendMessage } from "commands";
import { getTimeoutStats, getItemStats } from "lib/getStats";
import parseCommandArgs from "lib/parseCommandArgs";
import User from "user";
export default new Command('monthlystats', ['stats', 'monthlystats'], 'chatter', async (msg, user) => {
const args = parseCommandArgs(msg.messageText);
let target: User | null = user;
if (args[0]) {
target = await User.initUsername(args[0]);
if (!target) { await sendMessage(`User ${args[0]} doesn't exist!`, msg.messageId); return; };
};
const [timeout, item] = await Promise.all([getTimeoutStats(target, true), getItemStats(target, true)]);
if (!timeout || !item) { await sendMessage(`ERROR: Something went wrong!`, msg.messageId); return; };
const KD = timeout.shot.blaster / timeout.hit.blaster;
await sendMessage(`
This month: stats of ${target.displayName}:
Users blasted: ${timeout.shot.blaster},
Blasted by others: ${timeout.hit.blaster} (${isNaN(KD) ? 0 : KD.toFixed(2)} K/D).
Grenades lobbed: ${item.grenade},
TNT exploded: ${item.tnt}.
Silver bullets fired: ${timeout.shot.silverbullet},
Silver bullets taken: ${timeout.hit.silverbullet}.
`, msg.messageId);
});