fix(voice): make play_tts play in VC instead of no-op
play_tts was returning success without playing anything when bot was in a voice channel. Now it calls play_in_voice_channel directly. Simplified skip_double dedup: base adapter handles voice input TTS via play_tts (which now works for VC), runner skips to avoid double.
This commit is contained in:
parent
5254d0bba1
commit
f1b4d0b280
3 changed files with 23 additions and 25 deletions
|
|
@ -2575,18 +2575,9 @@ class GatewayRunner:
|
|||
if has_agent_tts:
|
||||
return False
|
||||
|
||||
# Dedup: base adapter auto-TTS already handles voice input.
|
||||
# Exception: Discord voice channel — play_tts override is a no-op,
|
||||
# so the runner must handle VC playback.
|
||||
skip_double = is_voice_input
|
||||
if skip_double:
|
||||
adapter = self.adapters.get(event.source.platform)
|
||||
guild_id = self._get_guild_id(event)
|
||||
if (guild_id and adapter
|
||||
and hasattr(adapter, "is_in_voice_channel")
|
||||
and adapter.is_in_voice_channel(guild_id)):
|
||||
skip_double = False
|
||||
if skip_double:
|
||||
# Dedup: base adapter auto-TTS already handles voice input
|
||||
# (play_tts plays in VC when connected, so runner can skip).
|
||||
if is_voice_input:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue