From 66826910126b1adec48167ed62541b2d68828170 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Mon, 1 Feb 2016 18:39:39 -0500 Subject: [PATCH] Fix cases where Member.roles would have a string instead of Role. Fixes #81. --- discord/state.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/discord/state.py b/discord/state.py index 684675d5b..be73c4fb1 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)