Handle adding and removal of group members.
This commit is contained in:
parent
18bdd3e7dd
commit
91351a3238
@ -325,6 +325,22 @@ class ConnectionState:
|
|||||||
|
|
||||||
self.dispatch('channel_create', channel)
|
self.dispatch('channel_create', channel)
|
||||||
|
|
||||||
|
def parse_channel_recipient_add(self, data):
|
||||||
|
channel = self._get_private_channel(data.get('channel_id'))
|
||||||
|
user = User(**data.get('user', {}))
|
||||||
|
channel.recipients.append(user)
|
||||||
|
self.dispatch('group_join', channel, user)
|
||||||
|
|
||||||
|
def parse_channel_recipient_remove(self, data):
|
||||||
|
channel = self._get_private_channel(data.get('channel_id'))
|
||||||
|
user = User(**data.get('user', {}))
|
||||||
|
try:
|
||||||
|
channel.recipients.remove(user)
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
self.dispatch('group_remove', channel, user)
|
||||||
|
|
||||||
def _make_member(self, server, data):
|
def _make_member(self, server, data):
|
||||||
roles = [server.default_role]
|
roles = [server.default_role]
|
||||||
for roleid in data.get('roles', []):
|
for roleid in data.get('roles', []):
|
||||||
@ -480,7 +496,6 @@ class ConnectionState:
|
|||||||
self._remove_server(server)
|
self._remove_server(server)
|
||||||
self.dispatch('server_remove', server)
|
self.dispatch('server_remove', server)
|
||||||
|
|
||||||
|
|
||||||
def parse_guild_ban_add(self, data):
|
def parse_guild_ban_add(self, data):
|
||||||
# we make the assumption that GUILD_BAN_ADD is done
|
# we make the assumption that GUILD_BAN_ADD is done
|
||||||
# before GUILD_MEMBER_REMOVE is called
|
# before GUILD_MEMBER_REMOVE is called
|
||||||
|
@ -331,6 +331,15 @@ to handle it, which defaults to print a traceback and ignore the exception.
|
|||||||
:param user: The user that started typing.
|
:param user: The user that started typing.
|
||||||
:param when: A ``datetime.datetime`` object representing when typing started.
|
:param when: A ``datetime.datetime`` object representing when typing started.
|
||||||
|
|
||||||
|
.. function:: on_group_join(channel, user)
|
||||||
|
on_group_remove(channel, user)
|
||||||
|
|
||||||
|
Called when someone joins or leaves a group, i.e. a :class:`PrivateChannel`
|
||||||
|
with a :attr:`PrivateChannel.type` of :attr:`ChannelType.group`.
|
||||||
|
|
||||||
|
:param channel: The group that the user joined or left.
|
||||||
|
:param user: The user that joined or left.
|
||||||
|
|
||||||
.. _discord-api-utils:
|
.. _discord-api-utils:
|
||||||
|
|
||||||
Utility Functions
|
Utility Functions
|
||||||
|
Loading…
x
Reference in New Issue
Block a user