Add Channel.voice_members
This allows you to see which members are currently in a voice channel.
This commit is contained in:
parent
411b477a02
commit
be14fd1dcc
@ -56,10 +56,15 @@ class Channel(object):
|
|||||||
|
|
||||||
An array of :class:`Roles` that have been overridden from their default
|
An array of :class:`Roles` that have been overridden from their default
|
||||||
values in the :attr:`Server.roles` attribute.
|
values in the :attr:`Server.roles` attribute.
|
||||||
|
.. attribute:: voice_members
|
||||||
|
|
||||||
|
An array of :class:`Members` that are currently inside this voice channel.
|
||||||
|
If :attr:`type` is not ``'voice'`` then this is always an empty array.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.update(**kwargs)
|
self.update(**kwargs)
|
||||||
|
self.voice_members = []
|
||||||
|
|
||||||
def update(self, **kwargs):
|
def update(self, **kwargs):
|
||||||
self.name = kwargs.get('name')
|
self.name = kwargs.get('name')
|
||||||
|
@ -89,8 +89,17 @@ class Member(User):
|
|||||||
self.is_afk = kwargs.get('suppress', False)
|
self.is_afk = kwargs.get('suppress', False)
|
||||||
self.mute = kwargs.get('mute', False)
|
self.mute = kwargs.get('mute', False)
|
||||||
self.deaf = kwargs.get('deaf', False)
|
self.deaf = kwargs.get('deaf', False)
|
||||||
|
old_channel = getattr(self, 'voice_channel', None)
|
||||||
self.voice_channel = kwargs.get('voice_channel')
|
self.voice_channel = kwargs.get('voice_channel')
|
||||||
|
|
||||||
|
if old_channel is None and self.voice_channel is not None:
|
||||||
|
# we joined a channel
|
||||||
|
self.voice_channel.voice_members.append(self)
|
||||||
|
elif old_channel is not None and self.voice_channel is None:
|
||||||
|
# we left a channel
|
||||||
|
old_channel.voice_members.remove(self)
|
||||||
|
|
||||||
|
|
||||||
class Server(object):
|
class Server(object):
|
||||||
"""Represents a Discord server.
|
"""Represents a Discord server.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user