From 1bafa4b86bcedb62b2fb349dda06f0867273481b Mon Sep 17 00:00:00 2001 From: SpaceEEC Date: Thu, 16 May 2019 19:56:19 +0200 Subject: [PATCH] fix(READY): do not overwrite Client#user when reidentifying See #3216, this commit attempts to fix losing ClientUser#_typing, which results in no longer being able to clear typing intervals --- src/client/websocket/handlers/READY.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/client/websocket/handlers/READY.js b/src/client/websocket/handlers/READY.js index 89f535f3b..039f8f237 100644 --- a/src/client/websocket/handlers/READY.js +++ b/src/client/websocket/handlers/READY.js @@ -3,10 +3,14 @@ let ClientUser; module.exports = (client, { d: data }, shard) => { - if (!ClientUser) ClientUser = require('../../../structures/ClientUser'); - const clientUser = new ClientUser(client, data.user); - client.user = clientUser; - client.users.set(clientUser.id, clientUser); + if (client.user) { + client.user._patch(data.user); + } else { + if (!ClientUser) ClientUser = require('../../../structures/ClientUser'); + const clientUser = new ClientUser(client, data.user); + client.user = clientUser; + client.users.set(clientUser.id, clientUser); + } for (const guild of data.guilds) { guild.shardID = shard.id;