feat(tally): fix live VC status updates and add permission pre-flight check

- Move tally hook from process_session (per-guild, gated by Logs subs)
  to process_ws_replays (once per game, all guilds) via on_game_finished
- Add set_voice_channel_status permission check at /tally-claim time so
  failures are immediate and visible rather than silent on every game
- Remove entitlement gate from tally_claim and tally_transfer
- Add VC tally permission section to /diagnose-perms when run in a VC
- Add 5 new locale keys to en.json for the permission messages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
deploy
2026-06-20 08:02:53 +00:00
parent 661a71649a
commit 28a635438d
4 changed files with 39 additions and 14 deletions
+5
View File
@@ -861,6 +861,11 @@
"status_line": "{base}: {verb} against {opponent}",
"not_in_vc": "You must be connected to a voice channel to use this.",
"premium_required": "This is a premium feature. Use /unlock to enable it for this server.",
"no_vc_perm": "The bot is missing the **Set Voice Channel Status** permission in this voice channel. Ask a server admin to grant it.",
"no_vc_perm_diagnose": "Missing **Set Voice Channel Status** — `/tally-claim` will fail in {vc}. Grant the bot this permission.",
"vc_perm_ok": "**Set Voice Channel Status** — `/tally-claim` can update {vc}.",
"vc_perm_header": "Voice Channel Tally ({vc})",
"vc_perm_not_in_vc": "Not in a voice channel — join one and re-run to check tally permissions.",
"need_one_input": "Provide exactly one of `username` or `squadron`.",
"already_active": "A tally is already active in **{channel}** tracking **{target}**. Use /tally-transfer or /tally-clear first.",
"claimed": "Now tracking **{target}** in **{channel}**. Status set to `0W-0L`.",