From 60587c8d74254b4de6f44108281f52a8fa0c2c98 Mon Sep 17 00:00:00 2001 From: hydrabolt Date: Fri, 12 Feb 2016 21:39:34 +0000 Subject: [PATCH] track new users from presence --- lib/Client/InternalClient.js | 10 +++++++--- src/Client/InternalClient.js | 10 +++++++--- test/msgbot.js | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index c31dd5669..c65cafe42 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -1641,9 +1641,13 @@ var InternalClient = (function () { break; case _Constants.PacketType.PRESENCE_UPDATE: - var user = self.users.get("id", data.user.id); + var user = self.users.add(new _StructuresUser2["default"](data.user, client)); + var server = self.servers.get("id", data.guild_id); + + if (user && server) { + + server.members.add(user); - if (user) { data.user.username = data.user.username || user.username; data.user.id = data.user.id || user.id; data.user.avatar = data.user.avatar || user.avatar; @@ -1658,7 +1662,7 @@ var InternalClient = (function () { self.users.update(user, presenceUser); } } else { - client.emit("warn", "presence update but user not in cache"); + client.emit("warn", "presence update but user/server not in cache"); } break; diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 5f6af9668..0ffb88214 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -1429,9 +1429,13 @@ export default class InternalClient { break; case PacketType.PRESENCE_UPDATE: - var user = self.users.get("id", data.user.id); + var user = self.users.add(new User(data.user, client)); + var server = self.servers.get("id", data.guild_id); + + if (user && server) { + + server.members.add(user); - if (user) { data.user.username = data.user.username || user.username; data.user.id = data.user.id || user.id; data.user.avatar = data.user.avatar || user.avatar; @@ -1447,7 +1451,7 @@ export default class InternalClient { } } else { - client.emit("warn", "presence update but user not in cache"); + client.emit("warn", "presence update but user/server not in cache"); } break; diff --git a/test/msgbot.js b/test/msgbot.js index 45796055d..a718706f4 100644 --- a/test/msgbot.js +++ b/test/msgbot.js @@ -83,6 +83,6 @@ client.on("debug", msg => console.log("[debug]", msg)); client.login(process.env["ds_email"], process.env["ds_password"]).catch(console.log); - +client.on("presence", (old, news) => console.log(`PRESENCE TEST ${old.username} $$ ${news.username}`)) var chan1, chan2; var msg1, msg2;