VoiceChannel.voice_members is now computed when needed.
This commit is contained in:
@ -174,20 +174,17 @@ class VoiceChannel(discord.abc.GuildChannel, Hashable):
|
||||
top channel is position 0.
|
||||
bitrate: int
|
||||
The channel's preferred audio bitrate in bits per second.
|
||||
voice_members
|
||||
A list of :class:`Members` that are currently inside this voice channel.
|
||||
user_limit: int
|
||||
The channel's limit for number of members that can be in a voice channel.
|
||||
"""
|
||||
|
||||
__slots__ = ( 'voice_members', 'name', 'id', 'guild', 'bitrate',
|
||||
'user_limit', '_state', 'position', '_overwrites' )
|
||||
__slots__ = ('name', 'id', 'guild', 'bitrate', 'user_limit',
|
||||
'_state', 'position', '_overwrites' )
|
||||
|
||||
def __init__(self, *, state, guild, data):
|
||||
self._state = state
|
||||
self.id = int(data['id'])
|
||||
self._update(guild, data)
|
||||
self.voice_members = []
|
||||
|
||||
def __repr__(self):
|
||||
return '<VoiceChannel id={0.id} name={0.name!r} position={0.position}>'.format(self)
|
||||
@ -200,6 +197,17 @@ class VoiceChannel(discord.abc.GuildChannel, Hashable):
|
||||
self.user_limit = data.get('user_limit')
|
||||
self._fill_overwrites(data)
|
||||
|
||||
@property
|
||||
def voice_members(self):
|
||||
"""Returns a list of :class:`Member` that are currently inside this voice channel."""
|
||||
ret = []
|
||||
for user_id, state in self.guild._voice_states.items():
|
||||
if state.channel.id == self.id:
|
||||
member = self.guild.get_member(user_id)
|
||||
if member is not None:
|
||||
ret.append(member)
|
||||
return ret
|
||||
|
||||
@asyncio.coroutine
|
||||
def edit(self, **options):
|
||||
"""|coro|
|
||||
|
Reference in New Issue
Block a user