From d534a0989e1c1080d7361bb872545468174580ba Mon Sep 17 00:00:00 2001 From: Rapptz Date: Tue, 18 Apr 2017 04:09:33 -0400 Subject: [PATCH] Properly cleanup of VoiceClients in cache. --- discord/client.py | 4 +--- discord/shard.py | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/discord/client.py b/discord/client.py index c8a81d333..fc03400bf 100644 --- a/discord/client.py +++ b/discord/client.py @@ -429,15 +429,13 @@ class Client: self._closed.set() - for voice in list(self.voice_clients): + for voice in self.voice_clients: try: yield from voice.disconnect() except: # if an error happens during disconnects, disregard it. pass - self.connection._remove_voice_client(voice.guild.id) - if self.ws is not None and self.ws.open: yield from self.ws.close() diff --git a/discord/shard.py b/discord/shard.py index d3d54ab5a..7937e375e 100644 --- a/discord/shard.py +++ b/discord/shard.py @@ -240,6 +240,12 @@ class AutoShardedClient(Client): self._closed.set() + for vc in self.voice_clients: + try: + yield from vc.disconnect() + except: + pass + to_close = [shard.ws.close() for shard in self.shards.values()] yield from asyncio.wait(to_close, loop=self.loop) yield from self.http.close()