feat: add extra Mumble bot instances and TTS greeting

Support [[mumble.extra]] config for additional Mumble identities that
inherit connection settings from the main [mumble] section. Extra bots
get their own state DB and do not run the voice trigger by default.

Add TTS greeting on first connect via mumble.greet config option.
Merlin joins as a second identity with his own client certificate.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
user
2026-02-22 04:34:10 +01:00
parent 165938a801
commit 9783365b1e
4 changed files with 121 additions and 1 deletions

View File

@@ -321,10 +321,22 @@ async def cmd_say(bot, message):
async def on_connected(bot) -> None:
"""Re-register listener after reconnect if listen or trigger is active."""
"""Re-register listener after reconnect; play TTS greeting on first join."""
if not _is_mumble(bot):
return
ps = _ps(bot)
# TTS greeting on first connect
greet = bot.config.get("mumble", {}).get("greet")
if greet and not ps.get("_greeted"):
ps["_greeted"] = True
# Wait for audio subsystem to be ready
for _ in range(20):
if bot._is_audio_ready():
break
await asyncio.sleep(0.5)
bot._spawn(_tts_play(bot, greet), name="voice-greet")
if ps["listen"] or ps["trigger"]:
_ensure_listener(bot)
_ensure_flush_task(bot)