aboutsummaryrefslogtreecommitdiff
path: root/discord/state.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-01-03 20:15:56 -0500
committerRapptz <[email protected]>2017-01-03 20:17:58 -0500
commitc863d93f69090e0f494ffa1b6846cddc3668f779 (patch)
tree3c0371a50be47cc222b28fdcc8e261dffc0225e9 /discord/state.py
parent[commands] Don't use removed is_private attribute in core decorators. (diff)
downloaddiscord.py-c863d93f69090e0f494ffa1b6846cddc3668f779.tar.xz
discord.py-c863d93f69090e0f494ffa1b6846cddc3668f779.zip
Fix bug that made member roles go missing.
Diffstat (limited to 'discord/state.py')
-rw-r--r--discord/state.py16
1 files changed, 3 insertions, 13 deletions
diff --git a/discord/state.py b/discord/state.py
index 31f29545..e839d5ab 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -330,7 +330,7 @@ class ConnectionState:
# skip these useless cases.
return
- member = self._make_member(guild, data)
+ member = Member(guild=guild, data=data, state=self)
guild._add_member(member)
old_member = copy.copy(member)
@@ -402,19 +402,9 @@ class ConnectionState:
else:
self.dispatch('group_remove', channel, user)
- def _make_member(self, guild, data):
- roles = [guild.default_role]
- for roleid in data.get('roles', []):
- role = utils.get(guild.roles, id=roleid)
- if role is not None:
- roles.append(role)
-
- data['roles'] = sorted(roles, key=lambda r: r.id)
- return Member(guild=guild, data=data, state=self)
-
def parse_guild_member_add(self, data):
guild = self._get_guild(int(data['guild_id']))
- member = self._make_member(guild, data)
+ member = Member(guild=guild, data=data, state=self)
guild._add_member(member)
guild._member_count += 1
self.dispatch('member_join', member)
@@ -605,7 +595,7 @@ class ConnectionState:
guild = self._get_guild(int(data['guild_id']))
members = data.get('members', [])
for member in members:
- m = self._make_member(guild, member)
+ m = Member(guild=guild, data=member, state=self)
existing = guild.get_member(m.id)
if existing is None or existing.joined_at is None:
guild._add_member(m)