diff --git a/src/api/utils/utils.ts b/src/api/utils/utils.ts index 1d9beb2..d07023f 100644 --- a/src/api/utils/utils.ts +++ b/src/api/utils/utils.ts @@ -5,8 +5,8 @@ import type { Snowflake } from 'discord-api-types/v10'; * * @param userId - The user id to calculate the default avatar index for */ -export function calculateUserDefaultAvatarIndex(userId: Snowflake) { - return Number(BigInt(userId) >> 22n) % 6; +export function calculateUserDefaultAvatarIndex(userId: Snowflake, discriminator: string) { + return discriminator === '0' ? Number(BigInt(userId) >> 22n) % 6 : Number.parseInt(discriminator) % 5; } /** diff --git a/src/structures/User.ts b/src/structures/User.ts index b254920..bbe8e65 100644 --- a/src/structures/User.ts +++ b/src/structures/User.ts @@ -1,4 +1,5 @@ import type { APIUser } from 'discord-api-types/v10'; +import { calculateUserDefaultAvatarIndex } from '../api'; import type { MessageCreateBodyRequest, ObjectToLower } from '../common'; import type { ImageOptions } from '../common/types/options'; import { DiscordBase } from './extra/DiscordBase'; @@ -34,9 +35,7 @@ export class User extends DiscordBase { avatarURL(options?: ImageOptions) { if (!this.avatar) { - const avatarIndex = - this.discriminator === '0' ? Number(BigInt(this.id) >> 22n) % 6 : Number.parseInt(this.discriminator) % 5; - return this.rest.cdn.embed.avatars.get(avatarIndex); + return this.rest.cdn.embed.avatars.get(calculateUserDefaultAvatarIndex(this.id, this.discriminator)); } return this.rest.cdn.avatars(this.id).get(this.avatar, options); }