mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 04:23:31 +01:00
refactor(Presences): remove from User, nullable on GuildMember (#6055)
as well as on Client#presenceUpdate
This commit is contained in:
@@ -16,7 +16,7 @@ class PresenceUpdateAction extends Action {
|
|||||||
const guild = this.client.guilds.cache.get(data.guild_id);
|
const guild = this.client.guilds.cache.get(data.guild_id);
|
||||||
if (!guild) return;
|
if (!guild) return;
|
||||||
|
|
||||||
const oldPresence = guild.presences.cache.get(user.id)?._clone();
|
const oldPresence = guild.presences.cache.get(user.id)?._clone() ?? null;
|
||||||
let member = guild.members.cache.get(user.id);
|
let member = guild.members.cache.get(user.id);
|
||||||
if (!member && data.status !== 'offline') {
|
if (!member && data.status !== 'offline') {
|
||||||
member = guild.members.add({
|
member = guild.members.add({
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const Base = require('./Base');
|
const Base = require('./Base');
|
||||||
const { Presence } = require('./Presence');
|
|
||||||
const VoiceState = require('./VoiceState');
|
const VoiceState = require('./VoiceState');
|
||||||
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
||||||
const { Error } = require('../errors');
|
const { Error } = require('../errors');
|
||||||
@@ -133,19 +132,11 @@ class GuildMember extends Base {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* The presence of this guild member
|
* The presence of this guild member
|
||||||
* @type {Presence}
|
* @type {?Presence}
|
||||||
* @readonly
|
* @readonly
|
||||||
*/
|
*/
|
||||||
get presence() {
|
get presence() {
|
||||||
return (
|
return this.guild.presences.resolve(this.id);
|
||||||
this.guild.presences.cache.get(this.id) ??
|
|
||||||
new Presence(this.client, {
|
|
||||||
user: {
|
|
||||||
id: this.id,
|
|
||||||
},
|
|
||||||
guild: this.guild,
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const Base = require('./Base');
|
const Base = require('./Base');
|
||||||
const { Presence } = require('./Presence');
|
|
||||||
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
const TextBasedChannel = require('./interfaces/TextBasedChannel');
|
||||||
const { Error } = require('../errors');
|
const { Error } = require('../errors');
|
||||||
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
||||||
@@ -122,18 +121,6 @@ class User extends Base {
|
|||||||
return new Date(this.createdTimestamp);
|
return new Date(this.createdTimestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The presence of this user
|
|
||||||
* @type {Presence}
|
|
||||||
* @readonly
|
|
||||||
*/
|
|
||||||
get presence() {
|
|
||||||
for (const guild of this.client.guilds.cache.values()) {
|
|
||||||
if (guild.presences.cache.has(this.id)) return guild.presences.cache.get(this.id);
|
|
||||||
}
|
|
||||||
return new Presence(this.client, { user: { id: this.id } });
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A link to the user's avatar.
|
* A link to the user's avatar.
|
||||||
* @param {ImageURLOptions} [options={}] Options for the Image URL
|
* @param {ImageURLOptions} [options={}] Options for the Image URL
|
||||||
|
|||||||
5
typings/index.d.ts
vendored
5
typings/index.d.ts
vendored
@@ -687,7 +687,7 @@ export class GuildMember extends PartialTextBasedChannel(Base) {
|
|||||||
public readonly permissions: Readonly<Permissions>;
|
public readonly permissions: Readonly<Permissions>;
|
||||||
public readonly premiumSince: Date | null;
|
public readonly premiumSince: Date | null;
|
||||||
public premiumSinceTimestamp: number | null;
|
public premiumSinceTimestamp: number | null;
|
||||||
public readonly presence: Presence;
|
public readonly presence: Presence | null;
|
||||||
public readonly roles: GuildMemberRoleManager;
|
public readonly roles: GuildMemberRoleManager;
|
||||||
public user: User;
|
public user: User;
|
||||||
public readonly voice: VoiceState;
|
public readonly voice: VoiceState;
|
||||||
@@ -1649,7 +1649,6 @@ export class User extends PartialTextBasedChannel(Base) {
|
|||||||
public flags: Readonly<UserFlags> | null;
|
public flags: Readonly<UserFlags> | null;
|
||||||
public id: Snowflake;
|
public id: Snowflake;
|
||||||
public readonly partial: false;
|
public readonly partial: false;
|
||||||
public readonly presence: Presence;
|
|
||||||
public system: boolean;
|
public system: boolean;
|
||||||
public readonly tag: string;
|
public readonly tag: string;
|
||||||
public username: string;
|
public username: string;
|
||||||
@@ -2932,7 +2931,7 @@ export interface ClientEvents {
|
|||||||
messageReactionAdd: [message: MessageReaction, user: User | PartialUser];
|
messageReactionAdd: [message: MessageReaction, user: User | PartialUser];
|
||||||
messageReactionRemove: [reaction: MessageReaction, user: User | PartialUser];
|
messageReactionRemove: [reaction: MessageReaction, user: User | PartialUser];
|
||||||
messageUpdate: [oldMessage: Message | PartialMessage, newMessage: Message | PartialMessage];
|
messageUpdate: [oldMessage: Message | PartialMessage, newMessage: Message | PartialMessage];
|
||||||
presenceUpdate: [oldPresence: Presence | undefined, newPresence: Presence];
|
presenceUpdate: [oldPresence: Presence | null, newPresence: Presence];
|
||||||
rateLimit: [rateLimitData: RateLimitData];
|
rateLimit: [rateLimitData: RateLimitData];
|
||||||
invalidRequestWarning: [invalidRequestWarningData: InvalidRequestWarningData];
|
invalidRequestWarning: [invalidRequestWarningData: InvalidRequestWarningData];
|
||||||
ready: [];
|
ready: [];
|
||||||
|
|||||||
Reference in New Issue
Block a user