aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2016-02-01 18:39:39 -0500
committerRapptz <[email protected]>2016-02-01 18:39:39 -0500
commit66826910126b1adec48167ed62541b2d68828170 (patch)
treeed71e85a0daf4eb39745a2b4f9656aa30e5991c7
parentMake VoiceClient.create_ytdl_player a coroutine. (diff)
downloaddiscord.py-66826910126b1adec48167ed62541b2d68828170.tar.xz
discord.py-66826910126b1adec48167ed62541b2d68828170.zip
Fix cases where Member.roles would have a string instead of Role.
Fixes #81.
-rw-r--r--discord/state.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/discord/state.py b/discord/state.py
index 684675d5..be73c4fb 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -194,8 +194,15 @@ class ConnectionState:
def parse_guild_member_add(self, data):
server = self._get_server(data.get('guild_id'))
+
+ roles = [server.default_role]
+ for roleid in data.get('roles', []):
+ role = utils.get(server.roles, id=roleid)
+ if role is not None:
+ roles.append(role)
+
+ data['roles'] = roles
member = Member(server=server, **data)
- member.roles.append(server.default_role)
server._add_member(member)
self.dispatch('member_join', member)