aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)