aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/state.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/discord/state.py b/discord/state.py
index 79054bee..fa74a384 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -469,10 +469,13 @@ class ConnectionState:
def parse_channel_create(self, data):
factory, ch_type = _channel_factory(data['type'])
channel = None
+
if ch_type in (ChannelType.group, ChannelType.private):
- channel = factory(me=self.user, data=data, state=self)
- self._add_private_channel(channel)
- self.dispatch('private_channel_create', channel)
+ channel_id = int(data['id'])
+ if self._get_private_channel(channel_id) is None:
+ channel = factory(me=self.user, data=data, state=self)
+ self._add_private_channel(channel)
+ self.dispatch('private_channel_create', channel)
else:
guild_id = utils._get_as_snowflake(data, 'guild_id')
guild = self._get_guild(guild_id)