From 9cf04aec3c9bd621367e5f653f6b1f9dd19e6eeb Mon Sep 17 00:00:00 2001 From: Rapptz Date: Tue, 3 Mar 2026 13:27:13 -0500 Subject: [PATCH] Add warning and raise if davey is not installed --- discord/client.py | 4 ++++ discord/voice_client.py | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/discord/client.py b/discord/client.py index 2d78fc2f4..1c1ed9f48 100644 --- a/discord/client.py +++ b/discord/client.py @@ -340,6 +340,10 @@ class Client: VoiceClient.warn_nacl = False _log.warning('PyNaCl is not installed, voice will NOT be supported') + if VoiceClient.warn_dave: + VoiceClient.warn_dave = False + _log.warning('davey is not installed, voice will NOT be supported') + async def __aenter__(self) -> Self: await self._async_setup_hook() return self diff --git a/discord/voice_client.py b/discord/voice_client.py index 3b489b7d0..f138a8c8a 100644 --- a/discord/voice_client.py +++ b/discord/voice_client.py @@ -34,7 +34,7 @@ from .gateway import * from .errors import ClientException from .player import AudioPlayer, AudioSource from .utils import MISSING -from .voice_state import VoiceConnectionState +from .voice_state import VoiceConnectionState, has_dave if TYPE_CHECKING: from .gateway import DiscordVoiceWebSocket @@ -218,6 +218,8 @@ class VoiceClient(VoiceProtocol): def __init__(self, client: Client, channel: abc.Connectable) -> None: if not has_nacl: raise RuntimeError('PyNaCl library needed in order to use voice') + if not has_dave: + raise RuntimeError('davey library needed in order to use voice') super().__init__(client, channel) state = client._connection @@ -235,6 +237,7 @@ class VoiceClient(VoiceProtocol): self._connection: VoiceConnectionState = self.create_connection_state() warn_nacl: bool = not has_nacl + warn_dave: bool = not has_dave supported_modes: Tuple[SupportedModes, ...] = ( 'aead_xchacha20_poly1305_rtpsize', 'xsalsa20_poly1305_lite',