From 5461bfb4752dad1c0b9d9792c4993bac1f0105af Mon Sep 17 00:00:00 2001 From: Rapptz Date: Tue, 21 Mar 2017 03:32:09 -0400 Subject: [PATCH] Check if we're closed before attempting to do a reconnect. --- discord/client.py | 3 +++ discord/shard.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/discord/client.py b/discord/client.py index 8ba5b7b33..e9f5a8fff 100644 --- a/discord/client.py +++ b/discord/client.py @@ -399,6 +399,9 @@ class Client: yield from self.close() raise + if self.is_closed(): + return + # We should only get this when an unhandled close code happens, # such as a clean disconnect (1000) or a bad state (bad token, no sharding, etc) # sometimes, discord sends us 1000 for unknown reasons so we should reconnect diff --git a/discord/shard.py b/discord/shard.py index ab0ca31f3..8fad51e9b 100644 --- a/discord/shard.py +++ b/discord/shard.py @@ -234,11 +234,12 @@ class AutoShardedClient(Client): if self.is_closed(): return + self._closed.set() + for shard in self.shards.values(): yield from shard.ws.close() yield from self.http.close() - self._closed.set() @asyncio.coroutine def change_presence(self, *, game=None, status=None, afk=False, shard_id=None):