aboutsummaryrefslogtreecommitdiff
path: root/discord/state.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2019-04-28 06:26:23 -0400
committerRapptz <[email protected]>2019-04-28 06:36:12 -0400
commitf9e95a35f9423bb127edc5c3edfb258889e0af66 (patch)
tree5cb78864f35f10fae82ced8be89f32c0d892a106 /discord/state.py
parentRewrite loop cleanup code (again...) and remove signal handling. (diff)
downloaddiscord.py-f9e95a35f9423bb127edc5c3edfb258889e0af66.tar.xz
discord.py-f9e95a35f9423bb127edc5c3edfb258889e0af66.zip
Fix USER_UPDATE changes not triggering for member instances.
Also add a ClientUser.locale attribute.
Diffstat (limited to 'discord/state.py')
-rw-r--r--discord/state.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/discord/state.py b/discord/state.py
index 3d420a0a..a603c55d 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -330,7 +330,8 @@ class ConnectionState:
self._ready_state = ReadyState(launch=asyncio.Event(), guilds=[])
self.clear()
- self.user = ClientUser(state=self, data=data['user'])
+ self.user = user = ClientUser(state=self, data=data['user'])
+ self._users[user.id] = user
guilds = self._ready_state.guilds
for guild_data in data['guilds']:
@@ -344,11 +345,11 @@ class ConnectionState:
except KeyError:
continue
else:
- self.user._relationships[r_id] = Relationship(state=self, data=relationship)
+ user._relationships[r_id] = Relationship(state=self, data=relationship)
for pm in data.get('private_channels', []):
factory, _ = _channel_factory(pm['type'])
- self._add_private_channel(factory(me=self.user, data=pm, state=self))
+ self._add_private_channel(factory(me=user, data=pm, state=self))
self.dispatch('connect')
self._ready_task = asyncio.ensure_future(self._delay_ready(), loop=self.loop)
@@ -472,7 +473,7 @@ class ConnectionState:
self.dispatch('member_update', old_member, member)
def parse_user_update(self, data):
- self.user = ClientUser(state=self, data=data)
+ self.user._update(data)
def parse_channel_delete(self, data):
guild = self._get_guild(utils._get_as_snowflake(data, 'guild_id'))
@@ -993,7 +994,8 @@ class AutoShardedConnectionState(ConnectionState):
if not hasattr(self, '_ready_state'):
self._ready_state = ReadyState(launch=asyncio.Event(), guilds=[])
- self.user = ClientUser(state=self, data=data['user'])
+ self.user = user = ClientUser(state=self, data=data['user'])
+ self._users[user.id] = user
guilds = self._ready_state.guilds
for guild_data in data['guilds']:
@@ -1003,7 +1005,7 @@ class AutoShardedConnectionState(ConnectionState):
for pm in data.get('private_channels', []):
factory, _ = _channel_factory(pm['type'])
- self._add_private_channel(factory(me=self.user, data=pm, state=self))
+ self._add_private_channel(factory(me=user, data=pm, state=self))
self.dispatch('connect')
if self._ready_task is None: