mirror of
https://github.com/danbulant/discord.js
synced 2026-07-08 12:40:50 +00:00
Emit -ed and fixed presence vs. userUpdated check
This commit is contained in:
parent
213379e669
commit
c9497a0f75
27 changed files with 49 additions and 33 deletions
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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() {
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
Loading…
Reference in a new issue