mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-20 13:33:30 +01:00
feat(GuildMember): add avatarDecorationData (#10942)
Co-Authored-By: Danial Raza <danialrazafb@gmail.com>
This commit is contained in:
@@ -122,6 +122,20 @@ class GuildMember extends Base {
|
|||||||
} else {
|
} else {
|
||||||
this.flags ??= new GuildMemberFlagsBitField().freeze();
|
this.flags ??= new GuildMemberFlagsBitField().freeze();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data.avatar_decoration_data) {
|
||||||
|
/**
|
||||||
|
* The member avatar decoration's data
|
||||||
|
*
|
||||||
|
* @type {?AvatarDecorationData}
|
||||||
|
*/
|
||||||
|
this.avatarDecorationData = {
|
||||||
|
asset: data.avatar_decoration_data.asset,
|
||||||
|
skuId: data.avatar_decoration_data.sku_id,
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
this.avatarDecorationData = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_clone() {
|
_clone() {
|
||||||
@@ -166,6 +180,15 @@ class GuildMember extends Base {
|
|||||||
return this.avatar && this.client.rest.cdn.guildMemberAvatar(this.guild.id, this.id, this.avatar, options);
|
return this.avatar && this.client.rest.cdn.guildMemberAvatar(this.guild.id, this.id, this.avatar, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A link to the member's avatar decoration.
|
||||||
|
*
|
||||||
|
* @returns {?string}
|
||||||
|
*/
|
||||||
|
avatarDecorationURL() {
|
||||||
|
return this.avatarDecorationData ? this.client.rest.cdn.avatarDecoration(this.avatarDecorationData.asset) : null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A link to the member's banner.
|
* A link to the member's banner.
|
||||||
* @param {ImageURLOptions} [options={}] Options for the banner URL
|
* @param {ImageURLOptions} [options={}] Options for the banner URL
|
||||||
@@ -195,6 +218,16 @@ class GuildMember extends Base {
|
|||||||
return this.bannerURL(options) ?? this.user.bannerURL(options);
|
return this.bannerURL(options) ?? this.user.bannerURL(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A link to the member's guild avatar decoration if they have one.
|
||||||
|
* Otherwise, a link to their {@link User#avatarDecorationURL} will be returned.
|
||||||
|
*
|
||||||
|
* @returns {?string}
|
||||||
|
*/
|
||||||
|
displayAvatarDecorationURL() {
|
||||||
|
return this.avatarDecorationURL() ?? this.user.avatarDecorationURL();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The time this member joined the guild
|
* The time this member joined the guild
|
||||||
* @type {?Date}
|
* @type {?Date}
|
||||||
@@ -499,7 +532,10 @@ class GuildMember extends Base {
|
|||||||
this.communicationDisabledUntilTimestamp === member.communicationDisabledUntilTimestamp &&
|
this.communicationDisabledUntilTimestamp === member.communicationDisabledUntilTimestamp &&
|
||||||
this.flags.bitfield === member.flags.bitfield &&
|
this.flags.bitfield === member.flags.bitfield &&
|
||||||
(this._roles === member._roles ||
|
(this._roles === member._roles ||
|
||||||
(this._roles.length === member._roles.length && this._roles.every((role, i) => role === member._roles[i])))
|
(this._roles.length === member._roles.length &&
|
||||||
|
this._roles.every((role, index) => role === member._roles[index]))) &&
|
||||||
|
this.avatarDecorationData?.asset === member.avatarDecorationData?.asset &&
|
||||||
|
this.avatarDecorationData?.skuId === member.avatarDecorationData?.skuId
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -525,6 +561,7 @@ class GuildMember extends Base {
|
|||||||
json.bannerURL = this.bannerURL();
|
json.bannerURL = this.bannerURL();
|
||||||
json.displayAvatarURL = this.displayAvatarURL();
|
json.displayAvatarURL = this.displayAvatarURL();
|
||||||
json.displayBannerURL = this.displayBannerURL();
|
json.displayBannerURL = this.displayBannerURL();
|
||||||
|
json.avatarDecorationURL = this.avatarDecorationURL();
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3
packages/discord.js/typings/index.d.ts
vendored
3
packages/discord.js/typings/index.d.ts
vendored
@@ -1799,6 +1799,7 @@ export class GuildMember extends Base {
|
|||||||
private constructor(client: Client<true>, data: RawGuildMemberData, guild: Guild);
|
private constructor(client: Client<true>, data: RawGuildMemberData, guild: Guild);
|
||||||
private _roles: Snowflake[];
|
private _roles: Snowflake[];
|
||||||
public avatar: string | null;
|
public avatar: string | null;
|
||||||
|
public avatarDecorationData: AvatarDecorationData | null;
|
||||||
public banner: string | null;
|
public banner: string | null;
|
||||||
public get bannable(): boolean;
|
public get bannable(): boolean;
|
||||||
public get dmChannel(): DMChannel | null;
|
public get dmChannel(): DMChannel | null;
|
||||||
@@ -1826,6 +1827,7 @@ export class GuildMember extends Base {
|
|||||||
public user: User;
|
public user: User;
|
||||||
public get voice(): VoiceState;
|
public get voice(): VoiceState;
|
||||||
public avatarURL(options?: ImageURLOptions): string | null;
|
public avatarURL(options?: ImageURLOptions): string | null;
|
||||||
|
public avatarDecorationURL(): string | null;
|
||||||
public bannerURL(options?: ImageURLOptions): string | null;
|
public bannerURL(options?: ImageURLOptions): string | null;
|
||||||
public ban(options?: BanOptions): Promise<GuildMember>;
|
public ban(options?: BanOptions): Promise<GuildMember>;
|
||||||
public disableCommunicationUntil(timeout: DateResolvable | null, reason?: string): Promise<GuildMember>;
|
public disableCommunicationUntil(timeout: DateResolvable | null, reason?: string): Promise<GuildMember>;
|
||||||
@@ -1835,6 +1837,7 @@ export class GuildMember extends Base {
|
|||||||
public deleteDM(): Promise<DMChannel>;
|
public deleteDM(): Promise<DMChannel>;
|
||||||
public displayAvatarURL(options?: ImageURLOptions): string;
|
public displayAvatarURL(options?: ImageURLOptions): string;
|
||||||
public displayBannerURL(options?: ImageURLOptions): string | null;
|
public displayBannerURL(options?: ImageURLOptions): string | null;
|
||||||
|
public displayAvatarDecorationURL(): string | null;
|
||||||
public edit(options: GuildMemberEditOptions): Promise<GuildMember>;
|
public edit(options: GuildMemberEditOptions): Promise<GuildMember>;
|
||||||
public isCommunicationDisabled(): this is GuildMember & {
|
public isCommunicationDisabled(): this is GuildMember & {
|
||||||
communicationDisabledUntilTimestamp: number;
|
communicationDisabledUntilTimestamp: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user