From 624364e759395f497080cb0dc3ee8ade9ea08888 Mon Sep 17 00:00:00 2001 From: Louis Johnson Date: Tue, 23 Dec 2025 23:24:01 +0700 Subject: [PATCH] feat(user)!: enhance user tag getter (#4652) * feat: enhance user tag getter * feat(user): add `0000` condition and better jsdoc for tag * chore(user): use this keyword instead of destructuring assignment * fix(user): correct isLegacy logic --- packages/bot/src/transformers/types.ts | 2 +- packages/bot/src/transformers/user.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/bot/src/transformers/types.ts b/packages/bot/src/transformers/types.ts index 701f609a8..f11b229ed 100644 --- a/packages/bot/src/transformers/types.ts +++ b/packages/bot/src/transformers/types.ts @@ -1784,7 +1784,7 @@ export interface User { banner?: bigint /** data for the user's avatar decoration */ avatarDecorationData?: AvatarDecorationData - /** The user tag in the form of username#discriminator */ + /** The user tag in the form of `username` or `username#discriminator` for legacy username system */ tag: string /** Whether the user belongs to an OAuth2 application */ bot: boolean diff --git a/packages/bot/src/transformers/user.ts b/packages/bot/src/transformers/user.ts index 315c98338..00e0dc041 100644 --- a/packages/bot/src/transformers/user.ts +++ b/packages/bot/src/transformers/user.ts @@ -11,7 +11,8 @@ export const baseUser: User = { ...(undefined as unknown as User), get tag() { - return `${this.username}#${this.discriminator}` + const isLegacy = this.discriminator !== '0' && this.discriminator !== '0000' + return isLegacy ? `${this.username}#${this.discriminator}` : this.username }, get bot() { return !!this.toggles?.has('bot')