feat: user avatar decoration

#9018 djs
This commit is contained in:
March 7th
2023-01-06 18:08:20 +07:00
parent fe7e3b8fda
commit 27dca8890a
3 changed files with 24 additions and 0 deletions

View File

@@ -175,6 +175,16 @@ class User extends Base {
*/
this.botInGuildsCount = data.approximate_guild_count;
}
if ('avatar_decoration' in data) {
/**
* The user avatar decoration's hash
* @type {?string}
*/
this.avatarDecoration = data.avatar_decoration;
} else {
this.avatarDecoration ??= null;
}
}
/**
@@ -401,6 +411,16 @@ class User extends Base {
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
* @type {string}

View File

@@ -196,6 +196,8 @@ exports.Endpoints = {
if (dynamic && hash.startsWith('a_')) format = 'gif';
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) => {
if (dynamic && hash.startsWith('a_')) format = 'gif';
return makeImageUrl(`${root}/guilds/${guildId}/users/${memberId}/avatars/${hash}`, { format, size });