diff --git a/discord/state.py b/discord/state.py index 08fb947de..64be587fa 100644 --- a/discord/state.py +++ b/discord/state.py @@ -286,7 +286,7 @@ class ConnectionState: if role is not None: roles.append(role) - data['roles'] = roles + data['roles'] = sorted(roles, key=lambda r: int(r.id)) return Member(server=server, **data) def parse_guild_member_add(self, data): @@ -324,14 +324,13 @@ class ConnectionState: member.nick = data['nick'] # update the roles - member.roles = [] + member.roles = [server.default_role] for role in server.roles: if role.id in data['roles']: member.roles.append(role) # sort the roles by ID since they can be "randomised" - member.roles.sort(key=lambda r: r.id) - member.roles.insert(0, server.default_role) + member.roles.sort(key=lambda r: int(r.id)) self.dispatch('member_update', old_member, member) def _get_create_server(self, data):