/[sudobot]/trunk/src/utils/structures/BaseCommand.ts
ViewVC logotype

Annotation of /trunk/src/utils/structures/BaseCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 56 - (hide annotations)
Mon Jul 29 17:28:24 2024 UTC (8 months, 2 weeks ago) by rakin
File MIME type: application/typescript
File size: 1415 byte(s)
Improved command cooldown system
1 rakin 51 import { CommandInteraction, CommandInteractionOption, Interaction, Message, MessageEditOptions, MessageOptions, MessagePayload, WebhookEditMessageOptions } from 'discord.js';
2     import DiscordClient from '../../client/Client';
3     import CommandOptions from '../../types/CommandOptions';
4     import InteractionOptions from '../../types/InteractionOptions';
5    
6     export default abstract class BaseCommand {
7     supportsInteractions: boolean = false;
8     supportsLegacy: boolean = true;
9 rakin 56 coolDown?: number;
10 rakin 51
11     constructor(private name: string, private category: string, private aliases: Array<string>) {
12    
13     }
14    
15     getName(): string {
16     return this.name;
17     }
18    
19     getCategory(): string {
20     return this.category;
21     }
22    
23     getAliases(): Array<string> {
24     return this.aliases;
25     }
26    
27     async deferReply(msg: Message | CommandInteraction, options: MessageOptions | string | MessagePayload | WebhookEditMessageOptions, edit: boolean = false): Promise<Message | CommandInteraction> {
28     if (msg instanceof Message) {
29     return await msg[edit ? 'edit' : 'reply'](options as (MessageOptions & MessageEditOptions));
30     }
31    
32     return (await msg.editReply(options as string | MessagePayload | WebhookEditMessageOptions)) as Message;
33     }
34    
35     abstract run(client: DiscordClient, message: Message | Interaction, options: CommandOptions | InteractionOptions): Promise<void>;
36     }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26