From c4f2fc2b0131691f1dbd9f89c50fbff1d62b0ca7 Mon Sep 17 00:00:00 2001 From: Fleny Date: Sat, 14 Jun 2025 10:08:58 +0200 Subject: [PATCH] feat(types,bot): add user collectibles (#4225) --- packages/bot/src/desiredProperties.ts | 24 ++++++++++++++++++++---- packages/bot/src/transformers.ts | 12 ++++++++++++ packages/bot/src/transformers/types.ts | 18 ++++++++++++++++++ packages/bot/src/transformers/user.ts | 26 ++++++++++++++++++++++++-- packages/types/src/discord/user.ts | 20 ++++++++++++++++++++ 5 files changed, 94 insertions(+), 6 deletions(-) diff --git a/packages/bot/src/desiredProperties.ts b/packages/bot/src/desiredProperties.ts index 4fc23e6c4..2f26624ee 100644 --- a/packages/bot/src/desiredProperties.ts +++ b/packages/bot/src/desiredProperties.ts @@ -7,6 +7,7 @@ import type { Attachment, AvatarDecorationData, Channel, + Collectibles, Component, DefaultReactionEmoji, Emoji, @@ -33,6 +34,7 @@ import type { MessageInteractionMetadata, MessageReference, MessageSnapshot, + Nameplate, Poll, PollAnswer, PollAnswerCount, @@ -63,6 +65,7 @@ export interface TransformersObjects { attachment: Attachment avatarDecorationData: AvatarDecorationData channel: Channel + collectibles: Collectibles component: Component defaultReactionEmoji: DefaultReactionEmoji emoji: Emoji @@ -79,6 +82,8 @@ export interface TransformersObjects { interactionResource: InteractionResource invite: Invite inviteStageInstance: InviteStageInstance + lobby: Lobby + lobbyMember: LobbyMember mediaGalleryItem: MediaGalleryItem member: Member message: Message @@ -87,6 +92,7 @@ export interface TransformersObjects { messageInteractionMetadata: MessageInteractionMetadata messageReference: MessageReference messageSnapshot: MessageSnapshot + nameplate: Nameplate poll: Poll pollAnswer: PollAnswer pollAnswerCount: PollAnswerCount @@ -96,16 +102,14 @@ export interface TransformersObjects { scheduledEvent: ScheduledEvent scheduledEventRecurrenceRule: ScheduledEventRecurrenceRule sku: Sku + soundboardSound: SoundboardSound stageInstance: StageInstance sticker: Sticker + subscription: Subscription unfurledMediaItem: UnfurledMediaItem user: User voiceState: VoiceState webhook: Webhook - subscription: Subscription - soundboardSound: SoundboardSound - lobby: Lobby - lobbyMember: LobbyMember } // NOTE: the top-level objects need both the dependencies and alwaysPresents even if empty when the key is specified, this is due the extends & nullability on DesiredPropertiesMetadata @@ -286,6 +290,10 @@ export function createDesiredPropertiesObject, ) => any channel: (bot: Bot, payload: DiscordChannel, channel: SetupDesiredProps) => any + collectibles: (bot: Bot, payload: DiscordCollectibles, collectibles: SetupDesiredProps) => any component: (bot: Bot, payload: DiscordMessageComponent, component: Component) => any defaultReactionEmoji: ( bot: Bot, @@ -361,6 +368,7 @@ export type Transformers, ) => any + nameplate: (bot: Bot, payload: DiscordNameplate, nameplate: SetupDesiredProps) => any poll: (bot: Bot, payload: DiscordPoll, poll: SetupDesiredProps) => any pollMedia: (bot: Bot, payload: DiscordPollMedia, pollMedia: SetupDesiredProps) => any presence: (bot: Bot, payload: DiscordPresenceUpdate, presence: PresenceUpdate) => any @@ -445,6 +453,7 @@ export type Transformers SetupDesiredProps channel: (bot: Bot, payload: { channel: DiscordChannel; guildId?: BigString }) => SetupDesiredProps + collectibles: (bot: Bot, payload: DiscordCollectibles) => SetupDesiredProps component: (bot: Bot, payload: DiscordMessageComponent) => Component defaultReactionEmoji: ( bot: Bot, @@ -509,6 +518,7 @@ export type Transformers, payload: { messageSnapshot: DiscordMessageSnapshot; shardId: number }, ) => SetupDesiredProps + nameplate: (bot: Bot, payload: DiscordNameplate) => SetupDesiredProps poll: (bot: Bot, payload: DiscordPoll) => SetupDesiredProps pollMedia: (bot: Bot, payload: DiscordPollMedia) => SetupDesiredProps presence: (bot: Bot, payload: DiscordPresenceUpdate) => PresenceUpdate @@ -651,6 +661,7 @@ export function createTransformers