From b25a6503a626b39a29d8575c3da357241d5a50de Mon Sep 17 00:00:00 2001 From: siqnole <1commuwil@hdsb.ca> Date: Sun, 26 Apr 2026 04:53:35 -0400 Subject: [PATCH] feat(stats): add ore profit and per-type count tracking in mine command Adds ore_profit (lifetime mining earnings) and ore_mined_ (per-species count) stat tracking via increment_stat so the dashboard can display detailed mining statistics beyond the existing ores_mined aggregate. Co-Authored-By: Claude Sonnet 4.6 --- commands/mining/mine.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/commands/mining/mine.h b/commands/mining/mine.h index 70364b6..c705d1b 100644 --- a/commands/mining/mine.h +++ b/commands/mining/mine.h @@ -355,7 +355,8 @@ static void finalize_mining(Database* db, MiningSession& s, bool from_timeout) { std::string metadata = "{\"name\":\"" + ore_info.ore.name + "\",\"value\":" + std::to_string(ore_info.value) + ",\"locked\":false,\"type\":\"ore\"}"; db->add_item(s.user_id, ore_info.item_id, "collectible", 1, metadata); db->increment_stat(s.user_id, "ores_mined", 1); - // Track per-species ore mastery + db->increment_stat(s.user_id, "ore_profit", ore_info.value); + db->increment_stat(s.user_id, "ore_mined_" + ore_info.ore.name, 1); db->increment_stat(s.user_id, "ore_mastery_" + ore_info.ore.name, 1); } @@ -376,6 +377,7 @@ static void finalize_mining(Database* db, MiningSession& s, bool from_timeout) { std::string bonus_meta = "{\"name\":\"Cashout Bonus\",\"value\":" + std::to_string(s.bonus_value) + ",\"locked\":false,\"type\":\"ore\"}"; db->add_item(s.user_id, s.bonus_ore_id, "collectible", 1, bonus_meta); db->increment_stat(s.user_id, "ores_mined", 1); + db->increment_stat(s.user_id, "ore_profit", s.bonus_value); s.total_value += s.bonus_value; total_ores_for_boss++; }