Emit -ed and fixed presence vs. userUpdated check

This commit is contained in:
abalabahaha
2015-11-22 17:15:49 -08:00
parent 213379e669
commit c9497a0f75
27 changed files with 49 additions and 33 deletions

View File

@@ -1556,14 +1556,14 @@ var InternalClient = (function () {
var presenceUser = new User(data.user, client); var presenceUser = new User(data.user, client);
if (presenceUser.equalsStrict(user)) { if (presenceUser.equals(user)) {
// a real presence update // a real presence update
client.emit("presence", user, data.status, data.game_id); client.emit("presence", user, data.status, data.game_id);
user.status = data.status; user.status = data.status;
user.gameID = data.game_id; user.gameID = data.game_id;
} else { } else {
// a name change or avatar change // a name change or avatar change
client.emit("userUpdate", user, presenceUser); client.emit("userUpdated", user, presenceUser);
self.users.update(user, presenceUser); self.users.update(user, presenceUser);
} }
} else { } else {
@@ -1583,14 +1583,14 @@ var InternalClient = (function () {
} else { } else {
user.typing.since = Date.now(); user.typing.since = Date.now();
user.typing.channel = channel; user.typing.channel = channel;
client.emit("userTypingStart", user, channel); client.emit("userTypingStarted", user, channel);
} }
setTimeout(function () { setTimeout(function () {
if (Date.now() - user.typing.since > 5500) { if (Date.now() - user.typing.since > 5500) {
// they haven't typed since // they haven't typed since
user.typing.since = null; user.typing.since = null;
user.typing.channel = null; user.typing.channel = null;
client.emit("userTypingStop", user, channel); client.emit("userTypingStopped", user, channel);
} }
}, 6000); }, 6000);
} else { } else {

View File

@@ -41,6 +41,10 @@ var User = (function (_Equality) {
if (obj instanceof User) return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar && this.status === obj.status && this.gameID === obj.gameID;else return false; if (obj instanceof User) return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar && this.status === obj.status && this.gameID === obj.gameID;else return false;
}; };
User.prototype.equals = function equals(obj) {
if (obj instanceof User) return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar;else return false;
};
_createClass(User, [{ _createClass(User, [{
key: "avatarURL", key: "avatarURL",
get: function get() { get: function get() {

View File

@@ -1627,7 +1627,7 @@ class InternalClient {
var presenceUser = new User(data.user, client); var presenceUser = new User(data.user, client);
if (presenceUser.equalsStrict(user)) { if (presenceUser.equals(user)) {
// a real presence update // a real presence update
client.emit("presence", user, data.status, data.game_id); client.emit("presence", user, data.status, data.game_id);
user.status = data.status; user.status = data.status;
@@ -1635,7 +1635,7 @@ class InternalClient {
} else { } else {
// a name change or avatar change // a name change or avatar change
client.emit("userUpdate", user, presenceUser); client.emit("userUpdated", user, presenceUser);
self.users.update(user, presenceUser); self.users.update(user, presenceUser);
} }
@@ -1656,14 +1656,14 @@ class InternalClient {
} else { } else {
user.typing.since = Date.now(); user.typing.since = Date.now();
user.typing.channel = channel; user.typing.channel = channel;
client.emit("userTypingStart", user, channel); client.emit("userTypingStarted", user, channel);
} }
setTimeout(() => { setTimeout(() => {
if (Date.now() - user.typing.since > 5500) { if (Date.now() - user.typing.since > 5500) {
// they haven't typed since // they haven't typed since
user.typing.since = null; user.typing.since = null;
user.typing.channel = null; user.typing.channel = null;
client.emit("userTypingStop", user, channel); client.emit("userTypingStopped", user, channel);
} }
}, 6000); }, 6000);

View File

@@ -48,6 +48,18 @@ class User extends Equality{
else else
return false; return false;
} }
equals(obj){
if(obj instanceof User)
return (
this.id === obj.id &&
this.username === obj.username &&
this.discriminator === obj.discriminator &&
this.avatar === obj.avatar
);
else
return false;
}
} }
module.exports = User; module.exports = User;