From 130122e64fa0b106aa08b516e0b9bb10f70295a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0spik?= Date: Tue, 14 Jul 2026 11:37:53 +0300 Subject: [PATCH 1/2] feat: pronouns MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: İspik --- src/classes/ServerMember.ts | 7 +++++++ src/classes/User.ts | 7 +++++++ src/events/v1.ts | 8 ++++++++ src/hydration/serverMember.ts | 3 +++ src/hydration/user.ts | 3 +++ 5 files changed, 28 insertions(+) diff --git a/src/classes/ServerMember.ts b/src/classes/ServerMember.ts index c734fd28..e04cc39b 100644 --- a/src/classes/ServerMember.ts +++ b/src/classes/ServerMember.ts @@ -94,6 +94,13 @@ export class ServerMember { return this.#collection.getUnderlyingObject(key(this.id)).avatar; } + /** + * Pronouns + */ + get pronouns(): string | undefined { + return this.#collection.getUnderlyingObject(key(this.id)).pronouns; + } + /** * List of role IDs */ diff --git a/src/classes/User.ts b/src/classes/User.ts index ab872a3d..2fe8cfe8 100644 --- a/src/classes/User.ts +++ b/src/classes/User.ts @@ -93,6 +93,13 @@ export class User { return this.#collection.getUnderlyingObject(this.id).avatar; } + /** + * Pronouns + */ + get pronouns(): string | undefined { + return this.#collection.getUnderlyingObject(this.id).pronouns; + } + /** * Badges */ diff --git a/src/events/v1.ts b/src/events/v1.ts index a085e6b1..4105c296 100644 --- a/src/events/v1.ts +++ b/src/events/v1.ts @@ -798,6 +798,10 @@ export async function handleEvent( case "Timeout": changes["timeout"] = undefined; break; + //@ts-expect-error API typings not updated + case "Pronouns": + changes["pronouns"] = undefined; + break; } } } @@ -869,6 +873,10 @@ export async function handleEvent( text: undefined, }; break; + //@ts-expect-error API typings not updated + case "Pronouns": + changes["pronouns"] = undefined; + break; } } } diff --git a/src/hydration/serverMember.ts b/src/hydration/serverMember.ts index cfb230a7..3b813216 100644 --- a/src/hydration/serverMember.ts +++ b/src/hydration/serverMember.ts @@ -11,6 +11,7 @@ export type HydratedServerMember = { joinedAt: Date; nickname?: string; avatar?: File; + pronouns?: string; roles: string[]; timeout?: Date; }; @@ -28,6 +29,8 @@ export const serverMemberHydration: Hydrate< joinedAt: (member) => new Date(member.joined_at), nickname: (member) => member.nickname!, avatar: (member, ctx) => new File(ctx as Client, member.avatar!), + //@ts-expect-error API typings not updated + pronouns: (member) => member.pronouns, roles: (member) => member.roles, timeout: (member) => new Date(member.timeout!), }, diff --git a/src/hydration/user.ts b/src/hydration/user.ts index c7f2e50c..478be61d 100644 --- a/src/hydration/user.ts +++ b/src/hydration/user.ts @@ -25,6 +25,7 @@ export type HydratedUser = { flags: UserFlags; avatar?: File; + pronouns?: string; status?: UserStatus; bot?: BotInformation; }; @@ -49,6 +50,8 @@ export const userHydration: Hydrate = { flags: (user) => user.flags!, avatar: (user, ctx) => new File(ctx as Client, user.avatar!), + //@ts-expect-error API typings not updated + pronouns: (user) => user.pronouns, status: (user) => user.status!, bot: (user) => user.bot!, }, From e65e0b7d599d59f404b080a01aa0ab832e5b72a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0spik?= Date: Wed, 15 Jul 2026 21:32:27 +0300 Subject: [PATCH 2/2] feat: add pronouns MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: İspik --- src/events/v1.ts | 2 -- src/hydration/serverMember.ts | 3 +-- src/hydration/user.ts | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/events/v1.ts b/src/events/v1.ts index 4105c296..dbaf7dfe 100644 --- a/src/events/v1.ts +++ b/src/events/v1.ts @@ -798,7 +798,6 @@ export async function handleEvent( case "Timeout": changes["timeout"] = undefined; break; - //@ts-expect-error API typings not updated case "Pronouns": changes["pronouns"] = undefined; break; @@ -873,7 +872,6 @@ export async function handleEvent( text: undefined, }; break; - //@ts-expect-error API typings not updated case "Pronouns": changes["pronouns"] = undefined; break; diff --git a/src/hydration/serverMember.ts b/src/hydration/serverMember.ts index 3b813216..6c4bf3e5 100644 --- a/src/hydration/serverMember.ts +++ b/src/hydration/serverMember.ts @@ -29,8 +29,7 @@ export const serverMemberHydration: Hydrate< joinedAt: (member) => new Date(member.joined_at), nickname: (member) => member.nickname!, avatar: (member, ctx) => new File(ctx as Client, member.avatar!), - //@ts-expect-error API typings not updated - pronouns: (member) => member.pronouns, + pronouns: (member) => member.pronouns!, roles: (member) => member.roles, timeout: (member) => new Date(member.timeout!), }, diff --git a/src/hydration/user.ts b/src/hydration/user.ts index 478be61d..49c7fbce 100644 --- a/src/hydration/user.ts +++ b/src/hydration/user.ts @@ -50,7 +50,6 @@ export const userHydration: Hydrate = { flags: (user) => user.flags!, avatar: (user, ctx) => new File(ctx as Client, user.avatar!), - //@ts-expect-error API typings not updated pronouns: (user) => user.pronouns, status: (user) => user.status!, bot: (user) => user.bot!,