diff --git a/packages/types/src/camel.ts b/packages/types/src/camel.ts index 17cc6b363..b8699004a 100644 --- a/packages/types/src/camel.ts +++ b/packages/types/src/camel.ts @@ -64,8 +64,8 @@ import type { DiscordGuildIntegrationsUpdate, DiscordGuildMemberAdd, DiscordGuildMemberRemove, - DiscordGuildMemberUpdate, DiscordGuildMembersChunk, + DiscordGuildMemberUpdate, DiscordGuildPreview, DiscordGuildRoleCreate, DiscordGuildRoleDelete, @@ -124,6 +124,7 @@ import type { DiscordScheduledEventUserAdd, DiscordScheduledEventUserRemove, DiscordSelectMenuComponent, + DiscordSelectMenuDefaultValue, DiscordSelectOption, DiscordSessionStartLimit, DiscordStageInstance, @@ -135,8 +136,8 @@ import type { DiscordTemplate, DiscordThreadListSync, DiscordThreadMember, - DiscordThreadMemberUpdate, DiscordThreadMembersUpdate, + DiscordThreadMemberUpdate, DiscordThreadMetadata, DiscordTokenExchange, DiscordTokenExchangeAuthorizationCode, @@ -226,6 +227,7 @@ export type CamelizedDiscordMessageComponents = Camelize {} export interface CamelizedDiscordSelectMenuComponent extends Camelize {} export interface CamelizedDiscordSelectOption extends Camelize {} +export interface CamelizedDiscordSelectMenuDefaultValue extends Camelize {} export interface CamelizedDiscordButtonComponent extends Camelize {} export interface CamelizedDiscordInputTextComponent extends Camelize {} export interface CamelizedDiscordStickerItem extends Camelize {} diff --git a/packages/types/src/discord.ts b/packages/types/src/discord.ts index 4dbccc1ef..f2cbdb25f 100644 --- a/packages/types/src/discord.ts +++ b/packages/types/src/discord.ts @@ -1418,6 +1418,7 @@ export interface DiscordActionRow { components: Array } +/** https://discord.com/developers/docs/interactions/message-components#select-menu-object */ export interface DiscordSelectMenuComponent { type: MessageComponentTypes.SelectMenu /** A custom identifier for this component. Maximum 100 characters. */ @@ -1454,6 +1455,14 @@ export interface DiscordSelectOption { default?: boolean } +/** https://discord.com/developers/docs/interactions/message-components#select-menu-object-select-default-value-structure */ +export interface DiscordSelectMenuDefaultValue { + /** ID of a user, role, or channel */ + id: bigint + /** Type of value that id represents. */ + type: 'user' | 'role' | 'channel' +} + /** https://discord.com/developers/docs/interactions/message-components#buttons-button-object */ export interface DiscordButtonComponent { /** All button components have type 2 */ diff --git a/packages/types/src/discordeno.ts b/packages/types/src/discordeno.ts index 9ea1b0b6d..528c49ddc 100644 --- a/packages/types/src/discordeno.ts +++ b/packages/types/src/discordeno.ts @@ -144,6 +144,11 @@ export interface SelectMenuUsersComponent { customId: string /** A custom placeholder text if nothing is selected. Maximum 150 characters. */ placeholder?: string + /** + * List of default values for auto-populated select menu components + * The number of default values must be in the range defined by minValues and maxValues + */ + defaultValues?: SelectMenuDefaultValue[] /** The minimum number of items that must be selected. Default 1. Between 1-25. */ minValues?: number /** The maximum number of items that can be selected. Default 1. Between 1-25. */ @@ -159,6 +164,11 @@ export interface SelectMenuRolesComponent { customId: string /** A custom placeholder text if nothing is selected. Maximum 150 characters. */ placeholder?: string + /** + * List of default values for auto-populated select menu components + * The number of default values must be in the range defined by minValues and maxValues + */ + defaultValues?: SelectMenuDefaultValue[] /** The minimum number of items that must be selected. Default 1. Between 1-25. */ minValues?: number /** The maximum number of items that can be selected. Default 1. Between 1-25. */ @@ -174,6 +184,11 @@ export interface SelectMenuUsersAndRolesComponent { customId: string /** A custom placeholder text if nothing is selected. Maximum 150 characters. */ placeholder?: string + /** + * List of default values for auto-populated select menu components + * The number of default values must be in the range defined by minValues and maxValues + */ + defaultValues?: SelectMenuDefaultValue[] /** The minimum number of items that must be selected. Default 1. Between 1-25. */ minValues?: number /** The maximum number of items that can be selected. Default 1. Between 1-25. */ @@ -191,6 +206,11 @@ export interface SelectMenuChannelsComponent { customId: string /** A custom placeholder text if nothing is selected. Maximum 150 characters. */ placeholder?: string + /** + * List of default values for auto-populated select menu components + * The number of default values must be in the range defined by minValues and maxValues + */ + defaultValues?: SelectMenuDefaultValue[] /** The minimum number of items that must be selected. Default 1. Between 1-25. */ minValues?: number /** The maximum number of items that can be selected. Default 1. Between 1-25. */ @@ -221,6 +241,13 @@ export interface SelectOption { default?: boolean } +export interface SelectMenuDefaultValue { + /** ID of a user, role, or channel */ + id: bigint + /** Type of value that id represents. */ + type: 'user' | 'role' | 'channel' +} + /** https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-structure */ export interface InputTextComponent { /** InputText Component is of type 4 */