From 3b1b26ffb1c9a75ac9c3f958d6e134ccddd6be07 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Tue, 18 Apr 2017 02:29:43 -0400 Subject: Re-implement voice sending. This is a complete redesign of the old voice code. A list of major changes is as follows: * The voice websocket will now automatically reconnect with exponential back-off just like the regular Client does. * Removal of the stream player concept. * Audio now gracefully pauses and resumes when a disconnect is found. * Introduce a discord.AudioSource concept to abstract streams * Flatten previous stream player functionality with the VoiceClient, e.g. player.stop() is now voice_client.stop() * With the above re-coupling this means you no longer have to store players anywhere. * The after function now requires a single parameter, the error, if any existed. This will typically be None. A lot of this design is experimental. --- discord/channel.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'discord/channel.py') diff --git a/discord/channel.py b/discord/channel.py index 67259f44..6478c47b 100644 --- a/discord/channel.py +++ b/discord/channel.py @@ -290,7 +290,7 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable): count += 1 ret.append(msg) -class VoiceChannel(discord.abc.GuildChannel, Hashable): +class VoiceChannel(discord.abc.Callable, discord.abc.GuildChannel, Hashable): """Represents a Discord guild voice channel. Supported Operations: @@ -335,6 +335,12 @@ class VoiceChannel(discord.abc.GuildChannel, Hashable): def __repr__(self): return ''.format(self) + def _get_voice_client_key(self): + return self.guild.id, 'guild_id' + + def _get_voice_state_pair(self): + return self.guild.id, self.id + def _update(self, guild, data): self.guild = guild self.name = data['name'] -- cgit v1.2.3