aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/guild.py5
-rw-r--r--discord/state.py4
2 files changed, 7 insertions, 2 deletions
diff --git a/discord/guild.py b/discord/guild.py
index 5d7cb134..ed2860bd 100644
--- a/discord/guild.py
+++ b/discord/guild.py
@@ -249,10 +249,11 @@ class Guild(Hashable):
for c in channels:
if c['type'] == ChannelType.text.value:
channel = TextChannel(guild=self, data=c, state=self._state)
- else:
+ self._add_channel(channel)
+ elif c['type'] == ChannelType.voice.value:
channel = VoiceChannel(guild=self, data=c, state=self._state)
+ self._add_channel(channel)
- self._add_channel(channel)
@property
def channels(self):
diff --git a/discord/state.py b/discord/state.py
index 0511b754..c470d11c 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -496,6 +496,10 @@ class ConnectionState:
guild_id = utils._get_as_snowflake(data, 'guild_id')
guild = self._get_guild(guild_id)
if guild is not None:
+ if factory is None:
+ log.warning('CHANNEL_CREATE referencing an unknown channel type %s. Discarding.', data['type'])
+ return
+
channel = factory(guild=guild, state=self, data=data)
guild._add_channel(channel)
self.dispatch('guild_channel_create', channel)