From 5f272fa1511f920fe7e0ed63fe665388648d4940 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Wed, 10 Jul 2019 03:49:58 -0400 Subject: [PATCH] Add VoiceChannel.voice_states low level helper. --- discord/channel.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/discord/channel.py b/discord/channel.py index ae0eb4c37..62bc3d3f8 100644 --- a/discord/channel.py +++ b/discord/channel.py @@ -549,6 +549,24 @@ class VoiceChannel(discord.abc.Connectable, discord.abc.GuildChannel, Hashable): ret.append(member) return ret + @property + def voice_states(self): + """Returns a mapping of member IDs who have voice states in this channel. + + .. versionadded:: 1.3.0 + + .. note:: + + This function is intentionally low level to replace :attr:`members` + when the member cache is unavailable. + + Returns + -------- + Mapping[:class:`int`, :class:`VoiceState`] + The mapping of member ID to a voice state. + """ + return {key: value for key, value in self.guild._voice_states.items() if value.channel.id == self.id} + def permissions_for(self, member): base = super().permissions_for(member)