mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-15 19:13:31 +01:00
Fix presences probably ¯\_(ツ)_/¯
This commit is contained in:
@@ -18,6 +18,12 @@ class PresenceUpdateHandler extends AbstractHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const oldUser = cloneObject(user);
|
||||||
|
user.patch(data.user);
|
||||||
|
if (!user.equals(oldUser)) {
|
||||||
|
client.emit(Constants.Events.USER_DETAILS_UPDATE, oldUser, user);
|
||||||
|
}
|
||||||
|
|
||||||
if (guild) {
|
if (guild) {
|
||||||
let member = guild.members.get(user.id);
|
let member = guild.members.get(user.id);
|
||||||
if (!member && data.status !== 'offline') {
|
if (!member && data.status !== 'offline') {
|
||||||
@@ -29,20 +35,32 @@ class PresenceUpdateHandler extends AbstractHandler {
|
|||||||
}, false);
|
}, false);
|
||||||
client.emit(Constants.Events.GUILD_MEMBER_AVAILABLE, guild, member);
|
client.emit(Constants.Events.GUILD_MEMBER_AVAILABLE, guild, member);
|
||||||
}
|
}
|
||||||
guild._setPresence(user.id, data);
|
if (member) {
|
||||||
|
const oldMember = cloneObject(member);
|
||||||
|
if (member.presence) {
|
||||||
|
oldMember.frozenPresence = cloneObject(member.presence);
|
||||||
|
}
|
||||||
|
guild._setPresence(user.id, data);
|
||||||
|
client.emit(Constants.Events.PRESENCE_UPDATE, oldMember, member);
|
||||||
|
} else {
|
||||||
|
guild._setPresence(user.id, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const oldUser = cloneObject(user);
|
|
||||||
user.patch(data.user);
|
|
||||||
client.emit(Constants.Events.PRESENCE_UPDATE, oldUser, user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Emitted whenever a user changes one of their details or starts/stop playing a game
|
* Emitted whenever a guild member's presence changes, or they change one of their details.
|
||||||
* @event Client#presenceUpdate
|
* @event Client#presenceUpdate
|
||||||
* @param {User} oldUser The user before the presence update
|
* @param {GuildMember} oldMember The member before the presence update
|
||||||
* @param {User} newUser The user after the presence update
|
* @param {GuildMember} newMember The member after the presence update
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Emitted whenever a user's details (e.g. username) are changed.
|
||||||
|
* @event Client#userUpdate
|
||||||
|
* @param {User} oldUser The user before the update
|
||||||
|
* @param {User} newUser The user after the update
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ class GuildMember {
|
|||||||
* @readonly
|
* @readonly
|
||||||
*/
|
*/
|
||||||
get presence() {
|
get presence() {
|
||||||
return this.guild.presences.get(this.id);
|
return this.frozenPresence || this.guild.presences.get(this.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
*/
|
*/
|
||||||
class Presence {
|
class Presence {
|
||||||
constructor(data) {
|
constructor(data) {
|
||||||
|
if (!data) return;
|
||||||
/**
|
/**
|
||||||
* The status of the presence:
|
* The status of the presence:
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -173,6 +173,7 @@ exports.Events = {
|
|||||||
MESSAGE_BULK_DELETE: 'messageDeleteBulk',
|
MESSAGE_BULK_DELETE: 'messageDeleteBulk',
|
||||||
USER_UPDATE: 'userUpdate',
|
USER_UPDATE: 'userUpdate',
|
||||||
PRESENCE_UPDATE: 'presenceUpdate',
|
PRESENCE_UPDATE: 'presenceUpdate',
|
||||||
|
USER_DETAILS_UPDATE: 'userUpdate',
|
||||||
VOICE_STATE_UPDATE: 'voiceStateUpdate',
|
VOICE_STATE_UPDATE: 'voiceStateUpdate',
|
||||||
TYPING_START: 'typingStart',
|
TYPING_START: 'typingStart',
|
||||||
TYPING_STOP: 'typingStop',
|
TYPING_STOP: 'typingStop',
|
||||||
|
|||||||
@@ -16,9 +16,8 @@ client.on('ready', () => {
|
|||||||
console.log('ready!');
|
console.log('ready!');
|
||||||
});
|
});
|
||||||
|
|
||||||
client.on('presenceUpdate', (o, n) => {
|
client.on('userUpdate', (o, n) => {
|
||||||
if (o.username.startsWith('hydr'))
|
console.log(o.username, n.username);
|
||||||
console.log(o.username, o.presence.status, n.presence.status);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
client.on('channelCreate', channel => {
|
client.on('channelCreate', channel => {
|
||||||
|
|||||||
Reference in New Issue
Block a user