This commit is contained in:
tungdo0602
2025-07-01 20:17:13 +07:00
parent fd9c0e0d0f
commit 1def6ef27d
4 changed files with 44 additions and 25 deletions

View File

@@ -285,6 +285,6 @@
"message": "Import setImmediate from `node:timers` instead" "message": "Import setImmediate from `node:timers` instead"
} }
], ],
"linebreak-style": "off" "linebreak-style": 0
} }
} }

View File

@@ -25,6 +25,7 @@ const MessageFlags = require('../util/MessageFlags');
const Permissions = require('../util/Permissions'); const Permissions = require('../util/Permissions');
const SnowflakeUtil = require('../util/SnowflakeUtil'); const SnowflakeUtil = require('../util/SnowflakeUtil');
const Util = require('../util/Util'); const Util = require('../util/Util');
const ContainerComponent = require('./ContainerComponent');
/** /**
* @type {WeakSet<Message>} * @type {WeakSet<Message>}
@@ -162,8 +163,8 @@ class Message extends Base {
if ('components' in data) { if ('components' in data) {
/** /**
* A list of MessageActionRows in the message * A list of components in the message
* @type {MessageActionRow[]} * @type {MessageActionRow[] | ContainerComponent[]}
*/ */
this.components = data.components.map(c => BaseMessageComponent.create(c, this.client)); this.components = data.components.map(c => BaseMessageComponent.create(c, this.client));
} else { } else {

11
typings/enums.d.ts vendored
View File

@@ -235,6 +235,17 @@ export const enum MessageComponentTypes {
CONTAINER = 17, CONTAINER = 17,
} }
export const enum MessageComponentInteractables {
ACTION_ROW = 1,
BUTTON = 2,
STRING_SELECT = 3,
TEXT_INPUT = 4,
USER_SELECT = 5,
ROLE_SELECT = 6,
MENTIONABLE_SELECT = 7,
CHANNEL_SELECT = 8,
}
export const enum SelectMenuComponentTypes { export const enum SelectMenuComponentTypes {
STRING_SELECT = 3, STRING_SELECT = 3,
USER_SELECT = 5, USER_SELECT = 5,

15
typings/index.d.ts vendored
View File

@@ -92,6 +92,7 @@ import {
MembershipStates, MembershipStates,
MessageButtonStyles, MessageButtonStyles,
MessageComponentTypes, MessageComponentTypes,
MessageComponentInteractables,
MessageTypes, MessageTypes,
MFALevels, MFALevels,
NSFWLevels, NSFWLevels,
@@ -2132,7 +2133,7 @@ export interface StringMappedInteractionTypes<Cached extends CacheType = CacheTy
export type WrapBooleanCache<T extends boolean> = If<T, 'cached', CacheType>; export type WrapBooleanCache<T extends boolean> = If<T, 'cached', CacheType>;
export type MappedInteractionTypes<Cached extends boolean = boolean> = EnumValueMapped< export type MappedInteractionTypes<Cached extends boolean = boolean> = EnumValueMapped<
typeof MessageComponentTypes, typeof MessageComponentInteractables,
{ {
BUTTON: ButtonInteraction<WrapBooleanCache<Cached>>; BUTTON: ButtonInteraction<WrapBooleanCache<Cached>>;
STRING_SELECT: StringSelectInteraction<WrapBooleanCache<Cached>>; STRING_SELECT: StringSelectInteraction<WrapBooleanCache<Cached>>;
@@ -2365,7 +2366,13 @@ export class SectionComponent<T extends ThumbnailComponent | MessageButton> exte
export class ContainerComponent< export class ContainerComponent<
U extends ThumbnailComponent | MessageButton, U extends ThumbnailComponent | MessageButton,
T extends MessageActionRow | TextDisplayComponent | SectionComponent<U> | MediaGalleryComponent | SeparatorComponent | FileComponent T extends
| MessageActionRow
| TextDisplayComponent
| SectionComponent<U>
| MediaGalleryComponent
| SeparatorComponent
| FileComponent,
> extends BaseMessageComponent { > extends BaseMessageComponent {
public constructor(data?: ContainerComponent<U, T> | APIContainerComponent); public constructor(data?: ContainerComponent<U, T> | APIContainerComponent);
public components: T[]; public components: T[];
@@ -7152,9 +7159,9 @@ export type MessageComponentOptions =
| MessageButtonOptions | MessageButtonOptions
| MessageSelectMenuOptions; | MessageSelectMenuOptions;
export type MessageComponentType = keyof typeof MessageComponentTypes; export type MessageComponentType = keyof typeof MessageComponentInteractables;
export type MessageComponentTypeResolvable = MessageComponentType | MessageComponentTypes; export type MessageComponentTypeResolvable = MessageComponentType | MessageComponentInteractables;
export type GuildForumThreadMessageCreateOptions = Omit<MessageOptions, 'poll'> & export type GuildForumThreadMessageCreateOptions = Omit<MessageOptions, 'poll'> &
Pick<MessageOptions, 'flags' | 'stickers'>; Pick<MessageOptions, 'flags' | 'stickers'>;