mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-10 16:43:31 +01:00
Added full user tracking
This commit is contained in:
@@ -481,6 +481,30 @@ var Client = (function () {
|
||||
|
||||
break;
|
||||
|
||||
case "PRESENCE_UPDATE":
|
||||
|
||||
var userInCache = self.getUser("id", data.user.id);
|
||||
|
||||
if (userInCache) {
|
||||
//user exists
|
||||
var presenceUser = new User(data.user);
|
||||
if (presenceUser.equalsStrict(userInCache)) {
|
||||
//they're exactly the same, an actual presence update
|
||||
self.trigger("presence", {
|
||||
user: userInCache,
|
||||
status: data.status,
|
||||
server: self.getServer("id", data.guild_id),
|
||||
gameId: data.game_id
|
||||
});
|
||||
} else {
|
||||
//one of their details changed.
|
||||
self.trigger("userUpdate", userInCache, presenceUser);
|
||||
self.userCache[self.userCache.indexOf(userInCache)] = presenceUser;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
self.debug("received unknown packet");
|
||||
self.trigger("unknown", dat);
|
||||
|
||||
@@ -37,6 +37,11 @@ var User = (function () {
|
||||
value: function equals(object) {
|
||||
return object.id === this.id;
|
||||
}
|
||||
}, {
|
||||
key: "equalsStrict",
|
||||
value: function equalsStrict(object) {
|
||||
return object.id === this.id && object.avatar === this.avatar && object.username === this.username && object.discriminator === this.discriminator;
|
||||
}
|
||||
}, {
|
||||
key: "avatarURL",
|
||||
get: function get() {
|
||||
|
||||
Reference in New Issue
Block a user