blob: 6cf981b54cc92a192393dc0265f114fc8c3d068f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
/* eslint-disable @typescript-eslint/no-explicit-any */
import {
ArgumentGenerator,
ArgumentOptions,
ArgumentPromptOptions,
ArgumentTypeCaster,
Command,
CommandOptions
} from 'discord-akairo';
import { Snowflake } from 'discord.js';
import { BushMessage } from '../discord.js/BushMessage';
import { BushClient } from './BushClient';
import { BushCommandHandler } from './BushCommandHandler';
import { BushSlashMessage } from './BushSlashMessage';
type BushArgumentType =
| 'string'
| 'lowercase'
| 'uppercase'
| 'charCodes'
| 'number'
| 'integer'
| 'bigint'
| 'emojint'
| 'url'
| 'date'
| 'color'
| 'user'
| 'users'
| 'member'
| 'members'
| 'relevant'
| 'relevants'
| 'channel'
| 'channels'
| 'textChannel'
| 'textChannels'
| 'voiceChannel'
| 'voiceChannels'
| 'categoryChannel'
| 'categoryChannels'
| 'newsChannel'
| 'newsChannels'
| 'storeChannel'
| 'storeChannels'
| 'role'
| 'roles'
| 'emoji'
| 'emojis'
| 'guild'
| 'guilds'
| 'message'
| 'guildMessage'
| 'relevantMessage'
| 'invite'
| 'userMention'
| 'memberMention'
| 'channelMention'
| 'roleMention'
| 'emojiMention'
| 'commandAlias'
| 'command'
| 'inhibitor'
| 'listener'
| 'duration'
| (string | string[])[]
| RegExp
| string;
export interface BushArgumentOptions extends ArgumentOptions {
type?: BushArgumentType | ArgumentTypeCaster;
id: string;
description?: string;
prompt?: ArgumentPromptOptions;
}
export interface BushCommandOptions extends CommandOptions {
hidden?: boolean;
restrictedChannels?: Snowflake[];
restrictedGuilds?: Snowflake[];
description: {
content: string;
usage: string | string[];
examples: string | string[];
};
args?: BushArgumentOptions[] | ArgumentGenerator;
category: string;
completelyHide?: boolean;
}
export class BushCommand extends Command {
public declare client: BushClient;
public declare handler: BushCommandHandler;
public options: BushCommandOptions;
/** The channels the command is limited to run in. */
public restrictedChannels: Snowflake[];
/** The guilds the command is limited to run in. */
public restrictedGuilds: Snowflake[];
/** Whether the command is hidden from the help command. */
public hidden: boolean;
/** Completely hide this command from the help command. */
public completelyHide: boolean;
public constructor(id: string, options?: BushCommandOptions) {
super(id, options);
this.options = options;
this.hidden = options.hidden || false;
this.restrictedChannels = options.restrictedChannels;
this.restrictedGuilds = options.restrictedGuilds;
this.completelyHide = options.completelyHide;
}
public exec(message: BushMessage, args: any): any;
public exec(message: BushMessage | BushSlashMessage, args: any): any {
super.exec(message, args);
}
}
|