feat: support avatar decorations (#834)

This commit is contained in:
Danial Raza
2024-05-15 14:33:08 +02:00
committed by GitHub
parent 65eebd92d6
commit 7650ce4f72
12 changed files with 172 additions and 4 deletions

View File

@@ -8,7 +8,7 @@ import type { PresenceUpdateReceiveStatus } from './gateway.ts';
import type { OAuth2Scopes } from './oauth2.ts';
import type { APIRole } from './permissions.ts';
import type { APISticker } from './sticker.ts';
import type { APIUser } from './user.ts';
import type { APIAvatarDecorationData, APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/resources/guild#unavailable-guild-object
@@ -668,6 +668,12 @@ export interface APIGuildMember {
* Timestamp of when the time out will be removed; until then, they cannot interact with the guild
*/
communication_disabled_until?: string | null;
/**
* The data for the member's guild avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**

View File

@@ -87,8 +87,16 @@ export interface APIUser {
* The user's avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*
* @deprecated Use `avatar_decoration_data` instead
*/
avatar_decoration?: string | null;
/**
* The data for the user's avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**
@@ -320,3 +328,19 @@ export interface APIApplicationRoleConnection {
*/
metadata: Record<string, number | string>;
}
/**
* https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
export interface APIAvatarDecorationData {
/**
* The avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*/
asset: string;
/**
* The id of the avatar decoration's SKU
*/
sku_id: Snowflake;
}

View File

@@ -8,7 +8,7 @@ import type { PresenceUpdateReceiveStatus } from './gateway.ts';
import type { OAuth2Scopes } from './oauth2.ts';
import type { APIRole } from './permissions.ts';
import type { APISticker } from './sticker.ts';
import type { APIUser } from './user.ts';
import type { APIAvatarDecorationData, APIUser } from './user.ts';
/**
* https://discord.com/developers/docs/resources/guild#unavailable-guild-object
@@ -660,6 +660,12 @@ export interface APIGuildMember {
* Timestamp of when the time out will be removed; until then, they cannot interact with the guild
*/
communication_disabled_until?: string | null;
/**
* The data for the member's guild avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**

View File

@@ -87,8 +87,16 @@ export interface APIUser {
* The user's avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*
* @deprecated Use `avatar_decoration_data` instead
*/
avatar_decoration?: string | null;
/**
* The data for the user's avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**
@@ -320,3 +328,19 @@ export interface APIApplicationRoleConnection {
*/
metadata: Record<string, number | string>;
}
/**
* https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
export interface APIAvatarDecorationData {
/**
* The avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*/
asset: string;
/**
* The id of the avatar decoration's SKU
*/
sku_id: Snowflake;
}

View File

@@ -1101,11 +1101,23 @@ export const CDNRoutes = {
* - GET `/avatar-decorations/{user.id}/{user.avatar_decoration}.png`
*
* This route supports the extension: PNG
*
* @deprecated Use {@link CDNRoutes.avatarDecoration} instead.
*/
userAvatarDecoration(userId: Snowflake, userAvatarDecoration: string) {
return `/avatar-decorations/${userId}/${userAvatarDecoration}.png` as const;
},
/**
* Route for:
* - GET `/avatar-decoration-presets/{avatar_decoration_data_asset}.png`
*
* This route supports the extension: PNG
*/
avatarDecoration(avatarDecorationDataAsset: string) {
return `/avatar-decoration-presets/${avatarDecorationDataAsset}.png` as const;
},
/**
* Route for:
* - GET `/app-icons/{application.id}/{application.icon}.{png|jpeg|webp}`

View File

@@ -1110,11 +1110,23 @@ export const CDNRoutes = {
* - GET `/avatar-decorations/{user.id}/{user.avatar_decoration}.png`
*
* This route supports the extension: PNG
*
* @deprecated Use {@link CDNRoutes.avatarDecoration} instead.
*/
userAvatarDecoration(userId: Snowflake, userAvatarDecoration: string) {
return `/avatar-decorations/${userId}/${userAvatarDecoration}.png` as const;
},
/**
* Route for:
* - GET `/avatar-decoration-presets/{avatar_decoration_data_asset}.png`
*
* This route supports the extension: PNG
*/
avatarDecoration(avatarDecorationDataAsset: string) {
return `/avatar-decoration-presets/${avatarDecorationDataAsset}.png` as const;
},
/**
* Route for:
* - GET `/app-icons/{application.id}/{application.icon}.{png|jpeg|webp}`

View File

@@ -8,7 +8,7 @@ import type { PresenceUpdateReceiveStatus } from './gateway';
import type { OAuth2Scopes } from './oauth2';
import type { APIRole } from './permissions';
import type { APISticker } from './sticker';
import type { APIUser } from './user';
import type { APIAvatarDecorationData, APIUser } from './user';
/**
* https://discord.com/developers/docs/resources/guild#unavailable-guild-object
@@ -668,6 +668,12 @@ export interface APIGuildMember {
* Timestamp of when the time out will be removed; until then, they cannot interact with the guild
*/
communication_disabled_until?: string | null;
/**
* The data for the member's guild avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**

View File

@@ -87,8 +87,16 @@ export interface APIUser {
* The user's avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*
* @deprecated Use `avatar_decoration_data` instead
*/
avatar_decoration?: string | null;
/**
* The data for the user's avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**
@@ -320,3 +328,19 @@ export interface APIApplicationRoleConnection {
*/
metadata: Record<string, number | string>;
}
/**
* https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
export interface APIAvatarDecorationData {
/**
* The avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*/
asset: string;
/**
* The id of the avatar decoration's SKU
*/
sku_id: Snowflake;
}

View File

@@ -8,7 +8,7 @@ import type { PresenceUpdateReceiveStatus } from './gateway';
import type { OAuth2Scopes } from './oauth2';
import type { APIRole } from './permissions';
import type { APISticker } from './sticker';
import type { APIUser } from './user';
import type { APIAvatarDecorationData, APIUser } from './user';
/**
* https://discord.com/developers/docs/resources/guild#unavailable-guild-object
@@ -660,6 +660,12 @@ export interface APIGuildMember {
* Timestamp of when the time out will be removed; until then, they cannot interact with the guild
*/
communication_disabled_until?: string | null;
/**
* The data for the member's guild avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**

View File

@@ -87,8 +87,16 @@ export interface APIUser {
* The user's avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*
* @deprecated Use `avatar_decoration_data` instead
*/
avatar_decoration?: string | null;
/**
* The data for the user's avatar decoration
*
* See https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
avatar_decoration_data?: APIAvatarDecorationData | null;
}
/**
@@ -320,3 +328,19 @@ export interface APIApplicationRoleConnection {
*/
metadata: Record<string, number | string>;
}
/**
* https://discord.com/developers/docs/resources/user#avatar-decoration-data-object
*/
export interface APIAvatarDecorationData {
/**
* The avatar decoration hash
*
* See https://discord.com/developers/docs/reference#image-formatting
*/
asset: string;
/**
* The id of the avatar decoration's SKU
*/
sku_id: Snowflake;
}

View File

@@ -1101,11 +1101,23 @@ export const CDNRoutes = {
* - GET `/avatar-decorations/{user.id}/{user.avatar_decoration}.png`
*
* This route supports the extension: PNG
*
* @deprecated Use {@link CDNRoutes.avatarDecoration} instead.
*/
userAvatarDecoration(userId: Snowflake, userAvatarDecoration: string) {
return `/avatar-decorations/${userId}/${userAvatarDecoration}.png` as const;
},
/**
* Route for:
* - GET `/avatar-decoration-presets/{avatar_decoration_data_asset}.png`
*
* This route supports the extension: PNG
*/
avatarDecoration(avatarDecorationDataAsset: string) {
return `/avatar-decoration-presets/${avatarDecorationDataAsset}.png` as const;
},
/**
* Route for:
* - GET `/app-icons/{application.id}/{application.icon}.{png|jpeg|webp}`

View File

@@ -1110,11 +1110,23 @@ export const CDNRoutes = {
* - GET `/avatar-decorations/{user.id}/{user.avatar_decoration}.png`
*
* This route supports the extension: PNG
*
* @deprecated Use {@link CDNRoutes.avatarDecoration} instead.
*/
userAvatarDecoration(userId: Snowflake, userAvatarDecoration: string) {
return `/avatar-decorations/${userId}/${userAvatarDecoration}.png` as const;
},
/**
* Route for:
* - GET `/avatar-decoration-presets/{avatar_decoration_data_asset}.png`
*
* This route supports the extension: PNG
*/
avatarDecoration(avatarDecorationDataAsset: string) {
return `/avatar-decoration-presets/${avatarDecorationDataAsset}.png` as const;
},
/**
* Route for:
* - GET `/app-icons/{application.id}/{application.icon}.{png|jpeg|webp}`