Merge pull request #426 from NekoCyan/main

feat(Message): .clickButton() click the only one.
This commit is contained in:
Elysia 2022-12-02 15:45:20 +07:00 committed by GitHub
commit f20430452f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 3 deletions

View File

@ -1060,12 +1060,19 @@ class Message extends Base {
}
/**
* Click specific button
* @param {MessageButton|string} button Button ID
* Click specific button or automatically if only one.
* @param {MessageButton|string|null} button Button ID
* @returns {Promise<InteractionResponse>}
*/
clickButton(button) {
let buttonID;
if (!button) {
if (this.components.length == 1 && this.components[0].type == 'ACTION_ROW') {
if (this.components[0].components.length == 1) {
buttonID = this.components[0].components[0].customId;
}
}
}
if (button instanceof MessageButton) button = button.customId;
if (typeof button === 'string') buttonID = button;
if (!buttonID) {

2
typings/index.d.ts vendored
View File

@ -1974,7 +1974,7 @@ export class Message<Cached extends boolean = boolean> extends Base {
// Added
public markUnread(): Promise<boolean>;
public markRead(): Promise<boolean>;
public clickButton(button: MessageButton | string): Promise<InteractionResponse>;
public clickButton(button: MessageButton | string | null): Promise<InteractionResponse>;
public selectMenu(menuID: string, options: string[]): Promise<InteractionResponse>;
public selectMenu(options: string[]): Promise<InteractionResponse>;
public contextMenu(botID: Snowflake, commandName: string): Promise<InteractionResponse>;