feat(MessageComponentInteraction): component getter (#5840)

Co-authored-by: Vlad Frangu <kingdgrizzle@gmail.com>
Co-authored-by: SpaceEEC <spaceeec@yahoo.com>
Co-authored-by: Jan <66554238+vaporox@users.noreply.github.com>
This commit is contained in:
monbrey
2021-06-26 19:55:37 +10:00
committed by GitHub
parent adecead716
commit 1439183ad3
2 changed files with 16 additions and 0 deletions

View File

@@ -57,6 +57,19 @@ class MessageComponentInteraction extends Interaction {
this.webhook = new InteractionWebhook(this.client, this.applicationID, this.token);
}
/**
* The component which was interacted with
* @type {?(MessageActionRowComponent|Object)}
* @readonly
*/
get component() {
return (
this.message.components
.flatMap(row => row.components)
.find(component => (component.customID ?? component.custom_id) === this.customID) ?? null
);
}
/**
* Resolves the type of a MessageComponent
* @param {MessageComponentTypeResolvable} type The type to resolve

3
typings/index.d.ts vendored
View File

@@ -139,10 +139,12 @@ declare module 'discord.js' {
import BaseCollection from '@discordjs/collection';
import { ChildProcess } from 'child_process';
import {
APIActionRowComponent as RawActionRowComponent,
APIInteractionDataResolvedChannel as RawInteractionDataResolvedChannel,
APIInteractionDataResolvedGuildMember as RawInteractionDataResolvedGuildMember,
APIInteractionGuildMember as RawInteractionGuildMember,
APIMessage as RawMessage,
APIMessageComponent as RawMessageComponent,
APIOverwrite as RawOverwrite,
APIPartialEmoji as RawEmoji,
APIRole as RawRole,
@@ -1389,6 +1391,7 @@ declare module 'discord.js' {
export class MessageComponentInteraction extends Interaction {
public readonly channel: TextChannel | DMChannel | NewsChannel | PartialDMChannel | null;
public readonly component: MessageActionRowComponent | Exclude<RawMessageComponent, RawActionRowComponent> | null;
public componentType: MessageComponentType;
public customID: string;
public deferred: boolean;