feat(status): show money-supply metric in /status
Adds economy.get_economy_stats() (single-scan total coins, house balance, player-held coins, player count) and a "Rahavaru" field to /status, so admins can see whether the sinks are keeping pace with minted income. Also removed a duplicate bot_admin_check import. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013VbAVsrZuYesea99mPMmPT
This commit is contained in:
@@ -13,9 +13,9 @@ from pathlib import Path
|
||||
import discord
|
||||
from discord import app_commands
|
||||
|
||||
from core import economy
|
||||
from core.admin import bot_admin_check
|
||||
import strings as S
|
||||
from core.admin import bot_admin_check
|
||||
|
||||
|
||||
def register_ops_admin_commands(
|
||||
@@ -45,6 +45,7 @@ def register_ops_admin_commands(
|
||||
latency_ms = round(bot.latency * 1000, 1)
|
||||
cache_size = get_member_cache_size()
|
||||
user_count = await count_economy_users()
|
||||
eco_stats = await economy.get_economy_stats()
|
||||
|
||||
embed = discord.Embed(title=S.STATUS_UI["title"], color=0x57F287)
|
||||
embed.add_field(
|
||||
@@ -82,6 +83,18 @@ def register_ops_admin_commands(
|
||||
value=str(cache_size),
|
||||
inline=True,
|
||||
)
|
||||
total = eco_stats["total_coins"]
|
||||
house_pct = round(eco_stats["house_balance"] / total * 100) if total else 0
|
||||
embed.add_field(
|
||||
name=S.STATUS_UI["supply_field"],
|
||||
value=S.STATUS_UI["supply_val"].format(
|
||||
total=f"{total:,}".replace(",", " "),
|
||||
players=f"{eco_stats['player_coins']:,}".replace(",", " "),
|
||||
house=f"{eco_stats['house_balance']:,}".replace(",", " "),
|
||||
house_pct=house_pct,
|
||||
),
|
||||
inline=False,
|
||||
)
|
||||
|
||||
log_lines = [
|
||||
S.STATUS_UI["log_line"].format(name=p.name, size_kb=f"{p.stat().st_size / 1024:.1f}")
|
||||
|
||||
Reference in New Issue
Block a user