mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
feat: user avatar decorations (#9710)
* feat: user avatar decorations * lint * Update typings/index.d.ts Co-authored-by: David Malchin <malchin459@gmail.com> --------- Co-authored-by: David Malchin <malchin459@gmail.com>
This commit is contained in:
@@ -122,6 +122,16 @@ class User extends Base {
|
|||||||
*/
|
*/
|
||||||
this.flags = new UserFlags(data.public_flags);
|
this.flags = new UserFlags(data.public_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ('avatar_decoration' in data) {
|
||||||
|
/**
|
||||||
|
* The user avatar decoration's hash
|
||||||
|
* @type {?string}
|
||||||
|
*/
|
||||||
|
this.avatarDecoration = data.avatar_decoration;
|
||||||
|
} else {
|
||||||
|
this.avatarDecoration ??= null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -161,6 +171,16 @@ class User extends Base {
|
|||||||
return this.client.rest.cdn.Avatar(this.id, this.avatar, format, size, dynamic);
|
return this.client.rest.cdn.Avatar(this.id, this.avatar, format, size, dynamic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A link to the user's avatar decoration.
|
||||||
|
* @param {StaticImageURLOptions} [options={}] Options for the image URL
|
||||||
|
* @returns {?string}
|
||||||
|
*/
|
||||||
|
avatarDecorationURL({ format, size } = {}) {
|
||||||
|
if (!this.avatarDecoration) return null;
|
||||||
|
return this.client.rest.cdn.AvatarDecoration(this.id, this.avatarDecoration, format, size);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A link to the user's default avatar
|
* A link to the user's default avatar
|
||||||
* @type {string}
|
* @type {string}
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ exports.Endpoints = {
|
|||||||
if (dynamic && hash.startsWith('a_')) format = 'gif';
|
if (dynamic && hash.startsWith('a_')) format = 'gif';
|
||||||
return makeImageUrl(`${root}/avatars/${userId}/${hash}`, { format, size });
|
return makeImageUrl(`${root}/avatars/${userId}/${hash}`, { format, size });
|
||||||
},
|
},
|
||||||
|
AvatarDecoration: (userId, hash, format = 'png', size) =>
|
||||||
|
makeImageUrl(`${root}/avatar-decorations/${userId}/${hash}`, { format, size }),
|
||||||
GuildMemberAvatar: (guildId, memberId, hash, format = 'webp', size, dynamic = false) => {
|
GuildMemberAvatar: (guildId, memberId, hash, format = 'webp', size, dynamic = false) => {
|
||||||
if (dynamic && hash.startsWith('a_')) format = 'gif';
|
if (dynamic && hash.startsWith('a_')) format = 'gif';
|
||||||
return makeImageUrl(`${root}/guilds/${guildId}/users/${memberId}/avatars/${hash}`, { format, size });
|
return makeImageUrl(`${root}/guilds/${guildId}/users/${memberId}/avatars/${hash}`, { format, size });
|
||||||
|
|||||||
3
typings/index.d.ts
vendored
3
typings/index.d.ts
vendored
@@ -2698,6 +2698,7 @@ export class User extends PartialTextBasedChannel(Base) {
|
|||||||
|
|
||||||
public accentColor: number | null | undefined;
|
public accentColor: number | null | undefined;
|
||||||
public avatar: string | null;
|
public avatar: string | null;
|
||||||
|
public avatarDecoration: string | null;
|
||||||
public banner: string | null | undefined;
|
public banner: string | null | undefined;
|
||||||
public bot: boolean;
|
public bot: boolean;
|
||||||
public readonly createdAt: Date;
|
public readonly createdAt: Date;
|
||||||
@@ -2715,6 +2716,7 @@ export class User extends PartialTextBasedChannel(Base) {
|
|||||||
public readonly tag: string;
|
public readonly tag: string;
|
||||||
public username: string;
|
public username: string;
|
||||||
public avatarURL(options?: ImageURLOptions): string | null;
|
public avatarURL(options?: ImageURLOptions): string | null;
|
||||||
|
public avatarDecorationURL(options?: StaticImageURLOptions): string | null;
|
||||||
public bannerURL(options?: ImageURLOptions): string | null;
|
public bannerURL(options?: ImageURLOptions): string | null;
|
||||||
public createDM(force?: boolean): Promise<DMChannel>;
|
public createDM(force?: boolean): Promise<DMChannel>;
|
||||||
public deleteDM(): Promise<DMChannel>;
|
public deleteDM(): Promise<DMChannel>;
|
||||||
@@ -3095,6 +3097,7 @@ export const Constants: {
|
|||||||
size: AllowedImageSize,
|
size: AllowedImageSize,
|
||||||
dynamic: boolean,
|
dynamic: boolean,
|
||||||
): string;
|
): string;
|
||||||
|
AvatarDecoration(userId: Snowflake, hash: string, format: AllowedImageFormat, size: AllowedImageSize): string;
|
||||||
Banner(id: Snowflake, hash: string, format: DynamicImageFormat, size: AllowedImageSize, dynamic: boolean): string;
|
Banner(id: Snowflake, hash: string, format: DynamicImageFormat, size: AllowedImageSize, dynamic: boolean): string;
|
||||||
DefaultAvatar(index: number): string;
|
DefaultAvatar(index: number): string;
|
||||||
DiscoverySplash(guildId: Snowflake, hash: string, format: AllowedImageFormat, size: AllowedImageSize): string;
|
DiscoverySplash(guildId: Snowflake, hash: string, format: AllowedImageFormat, size: AllowedImageSize): string;
|
||||||
|
|||||||
Reference in New Issue
Block a user