diff --git a/discord/abc.py b/discord/abc.py index 35b703af0..1d490cd46 100644 --- a/discord/abc.py +++ b/discord/abc.py @@ -611,7 +611,7 @@ class GuildChannel: base_attrs['name'] = name or self.name guild_id = self.guild.id cls = self.__class__ - data = await self._state.http.create_channel(guild_id, self._type, reason=reason, **base_attrs) + data = await self._state.http.create_channel(guild_id, self.type.value, reason=reason, **base_attrs) obj = cls(state=self._state, guild=self.guild, data=data) # temporarily add it to the cache diff --git a/discord/channel.py b/discord/channel.py index 7415ad033..ae0eb4c37 100644 --- a/discord/channel.py +++ b/discord/channel.py @@ -133,6 +133,11 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable): async def _get_channel(self): return self + @property + def type(self): + """:class:`ChannelType`: The channel's Discord type.""" + return try_enum(ChannelType, self._type) + @property def _sorting_bucket(self): return ChannelType.text.value @@ -516,8 +521,9 @@ class VoiceChannel(discord.abc.Connectable, discord.abc.GuildChannel, Hashable): return self.guild.id, self.id @property - def _type(self): - return ChannelType.voice.value + def type(self): + """:class:`ChannelType`: The channel's Discord type.""" + return ChannelType.voice def _update(self, guild, data): self.guild = guild @@ -660,8 +666,9 @@ class CategoryChannel(discord.abc.GuildChannel, Hashable): return ChannelType.category.value @property - def _type(self): - return ChannelType.category.value + def type(self): + """:class:`ChannelType`: The channel's Discord type.""" + return ChannelType.category def is_nsfw(self): """Checks if the category is NSFW.""" @@ -819,8 +826,9 @@ class StoreChannel(discord.abc.GuildChannel, Hashable): return ChannelType.text.value @property - def _type(self): - return ChannelType.store.value + def type(self): + """:class:`ChannelType`: The channel's Discord type.""" + return ChannelType.store def permissions_for(self, member): base = super().permissions_for(member) @@ -928,8 +936,9 @@ class DMChannel(discord.abc.Messageable, Hashable): return ''.format(self) @property - def _type(self): - return ChannelType.private.value + def type(self): + """:class:`ChannelType`: The channel's Discord type.""" + return ChannelType.private @property def created_at(self): @@ -1041,8 +1050,9 @@ class GroupChannel(discord.abc.Messageable, Hashable): return ''.format(self) @property - def _type(self): - return ChannelType.group.value + def type(self): + """:class:`ChannelType`: The channel's Discord type.""" + return ChannelType.group @property def icon_url(self): diff --git a/discord/state.py b/discord/state.py index c4b4ea6c4..f2ffabb2d 100644 --- a/discord/state.py +++ b/discord/state.py @@ -367,7 +367,7 @@ class ConnectionState: message = Message(channel=channel, data=data, state=self) self.dispatch('message', message) self._messages.append(message) - if channel and channel._type in (0, 5): + if channel and channel.__class__ is TextChannel: channel.last_message_id = message.id def parse_message_delete(self, data):