diff --git a/src/api/Router.ts b/src/api/Router.ts index 766f62d..6c6eb40 100644 --- a/src/api/Router.ts +++ b/src/api/Router.ts @@ -73,6 +73,7 @@ export interface CDNUrlOptions extends BaseCDNUrlOptions { export function parseCDNURL(route: string, options: CDNUrlOptions = {}) { if (options.forceStatic && route.includes('a_')) options.extension = 'png'; + if (!options.extension && route.includes('a_')) options.extension = 'gif'; const url = new URL(`${route}.${options.extension || 'png'}`); diff --git a/src/common/shorters/emojis.ts b/src/common/shorters/emojis.ts index 7a744ad..106b7ed 100644 --- a/src/common/shorters/emojis.ts +++ b/src/common/shorters/emojis.ts @@ -39,7 +39,9 @@ export class EmojiShorter extends BaseShorter { const emoji = await this.client.proxy.guilds(guildId).emojis.post({ body: bodyResolved, }); + await this.client.cache.emojis?.setIfNI('GuildEmojisAndStickers', emoji.id!, guildId, emoji); + return new GuildEmoji(this.client, emoji, guildId); } diff --git a/src/structures/GuildMember.ts b/src/structures/GuildMember.ts index cb2bfaf..47547d9 100644 --- a/src/structures/GuildMember.ts +++ b/src/structures/GuildMember.ts @@ -177,7 +177,11 @@ export class GuildMember extends BaseGuildMember { } avatarURL(options?: ImageOptions) { - return this.user.avatarURL(options); + if (!this.avatar) { + return null; + } + + return this.rest.cdn.guilds(this.guildId).users(this.id).avatars(this.avatar).get(options); } dynamicAvatarURL(options?: ImageOptions) { diff --git a/src/structures/User.ts b/src/structures/User.ts index bbe8e65..8ce155f 100644 --- a/src/structures/User.ts +++ b/src/structures/User.ts @@ -37,6 +37,7 @@ export class User extends DiscordBase { if (!this.avatar) { return this.rest.cdn.embed.avatars.get(calculateUserDefaultAvatarIndex(this.id, this.discriminator)); } + return this.rest.cdn.avatars(this.id).get(this.avatar, options); }