2.7.1, user updates are now tracked

This commit is contained in:
hydrabolt
2015-08-20 18:57:39 +01:00
parent c2607997dc
commit be787e0951
3 changed files with 56 additions and 22 deletions

View File

@@ -468,7 +468,18 @@ exports.Client.prototype.connectWebsocket = function( cb ) {
} else if ( dat.t === "PRESENCE_UPDATE" ) {
var data = dat.d;
var getUser = self.getUser(data.user.id);
if ( getUser ) {
//user already exists
var usr = new User( data.user );
if ( usr.equalsStrict( getUser ) ) {
//no changes, actually a presence.
} else {
if(self.updateUserReferences( data.user.id, getUser, new User( data.user ) )){
self.triggerEvent("userupdate", [getUser, usr]);
}
}
}
self.triggerEvent( "presence", [ new User( data.user ), data.status, self.serverList.filter( "id", data.guild_id, true ) ] );
} else if ( dat.t === "GUILD_DELETE" ) {
@@ -1002,6 +1013,23 @@ exports.isUserID = function( id ) {
return ( ( id + "" ).length === 17 && !isNaN( id ) );
}
exports.Client.prototype.updateUserReferences = function( id, oldUser, user ) {
if ( oldUser.equalsStrict( user ) ) {
return false;
}
for ( server of this.serverList.contents ) {
server.members.updateElement( oldUser, user );
}
this.debug( "Updated references to " + oldUser.username + " to " + this.getUser( id ).username );
return true;
}
exports.Client.prototype.addPM = function( pm ) {
this.PMList.add( pm );
}