@mephisto5558/command 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +20 -0
  3. package/dist/classes/command/index.d.ts +99 -0
  4. package/dist/classes/command/index.d.ts.map +1 -0
  5. package/dist/classes/command/index.js +378 -0
  6. package/dist/classes/command/index.js.map +1 -0
  7. package/dist/classes/command/utils.d.ts +29 -0
  8. package/dist/classes/command/utils.d.ts.map +1 -0
  9. package/dist/classes/command/utils.js +2 -0
  10. package/dist/classes/command/utils.js.map +1 -0
  11. package/dist/classes/commandManager/index.d.ts +43 -0
  12. package/dist/classes/commandManager/index.d.ts.map +1 -0
  13. package/dist/classes/commandManager/index.js +186 -0
  14. package/dist/classes/commandManager/index.js.map +1 -0
  15. package/dist/classes/commandOption/index.d.ts +124 -0
  16. package/dist/classes/commandOption/index.d.ts.map +1 -0
  17. package/dist/classes/commandOption/index.js +378 -0
  18. package/dist/classes/commandOption/index.js.map +1 -0
  19. package/dist/classes/commandOption/utils.d.ts +145 -0
  20. package/dist/classes/commandOption/utils.d.ts.map +1 -0
  21. package/dist/classes/commandOption/utils.js +3 -0
  22. package/dist/classes/commandOption/utils.js.map +1 -0
  23. package/dist/classes/utils.d.ts +42 -0
  24. package/dist/classes/utils.d.ts.map +1 -0
  25. package/dist/classes/utils.js +81 -0
  26. package/dist/classes/utils.js.map +1 -0
  27. package/dist/db.d.ts +22 -0
  28. package/dist/db.d.ts.map +1 -0
  29. package/dist/db.js +2 -0
  30. package/dist/db.js.map +1 -0
  31. package/dist/discord.js.d.ts +172 -0
  32. package/dist/discord.js.d.ts.map +1 -0
  33. package/dist/discord.js.js +2 -0
  34. package/dist/discord.js.js.map +1 -0
  35. package/dist/index.d.ts +71 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +22 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/tsconfig.tsbuildinfo +1 -0
  40. package/dist/utils/CooldownsManager.d.ts +8 -0
  41. package/dist/utils/CooldownsManager.d.ts.map +1 -0
  42. package/dist/utils/CooldownsManager.js +39 -0
  43. package/dist/utils/CooldownsManager.js.map +1 -0
  44. package/dist/utils/capitalize.d.ts +2 -0
  45. package/dist/utils/capitalize.d.ts.map +1 -0
  46. package/dist/utils/capitalize.js +4 -0
  47. package/dist/utils/capitalize.js.map +1 -0
  48. package/dist/utils/constants.d.ts +2 -0
  49. package/dist/utils/constants.d.ts.map +1 -0
  50. package/dist/utils/constants.js +2 -0
  51. package/dist/utils/constants.js.map +1 -0
  52. package/dist/utils/getCommands.d.ts +18 -0
  53. package/dist/utils/getCommands.d.ts.map +1 -0
  54. package/dist/utils/getCommands.js +36 -0
  55. package/dist/utils/getCommands.js.map +1 -0
  56. package/dist/utils/getDirectories.d.ts +2 -0
  57. package/dist/utils/getDirectories.d.ts.map +1 -0
  58. package/dist/utils/getDirectories.js +5 -0
  59. package/dist/utils/getDirectories.js.map +1 -0
  60. package/dist/utils/getFilename.d.ts +5 -0
  61. package/dist/utils/getFilename.d.ts.map +1 -0
  62. package/dist/utils/getFilename.js +5 -0
  63. package/dist/utils/getFilename.js.map +1 -0
  64. package/dist/utils/index.d.ts +9 -0
  65. package/dist/utils/index.d.ts.map +1 -0
  66. package/dist/utils/index.js +9 -0
  67. package/dist/utils/index.js.map +1 -0
  68. package/dist/utils/isSnowflake.d.ts +2 -0
  69. package/dist/utils/isSnowflake.d.ts.map +1 -0
  70. package/dist/utils/isSnowflake.js +4 -0
  71. package/dist/utils/isSnowflake.js.map +1 -0
  72. package/dist/utils/loadFile.d.ts +2 -0
  73. package/dist/utils/loadFile.d.ts.map +1 -0
  74. package/dist/utils/loadFile.js +32 -0
  75. package/dist/utils/loadFile.js.map +1 -0
  76. package/package.json +58 -0
  77. package/translationSchema.jsonc +114 -0
@@ -0,0 +1,43 @@
1
+ import * as Discord from 'discord.js';
2
+ import { Command, CommandUninitialized } from '../command/index.ts';
3
+ import { CommandType } from '../utils.ts';
4
+ import type { I18nProvider } from '@mephisto5558/i18n';
5
+ import type { AllContexts, Logger, commandDoneFn, customPermissionChecksFn } from '../../index.ts';
6
+ import type CooldownsManager from '../../utils/CooldownsManager.ts';
7
+ import type { CommandOptionConfig } from '../commandOption/utils.ts';
8
+ export type CollectionMember<Ready extends boolean = true> = If<Ready, {
9
+ ifTrue: Command<readonly CommandType[], AllContexts, readonly [] | readonly [CommandOptionConfig<readonly CommandType[], AllContexts>, ...CommandOptionConfig<readonly CommandType[], AllContexts>[]]>;
10
+ ifFalse: CommandUninitialized<readonly CommandType[], AllContexts, readonly [] | readonly [CommandOptionConfig<readonly CommandType[], AllContexts>, ...CommandOptionConfig<readonly CommandType[], AllContexts>[]]>;
11
+ }>;
12
+ export declare class CommandManager {
13
+ #private;
14
+ commands: Discord.Collection<Lowercase<string>, {
15
+ command: CollectionMember;
16
+ filePath: string;
17
+ }>;
18
+ client: Discord.Client<true>;
19
+ commandsPath: string;
20
+ doneFn: commandDoneFn | undefined;
21
+ cooldownsManager: CooldownsManager;
22
+ i18n: I18nProvider;
23
+ messagePrefixesArePreRemoved: boolean;
24
+ init(commandsPath: string, client: Discord.Client<true>, i18n: I18nProvider, config?: {
25
+ logger?: Logger;
26
+ doneFn?: commandDoneFn;
27
+ cooldownsManager?: CooldownsManager;
28
+ devIds?: Set<Snowflake>;
29
+ devOnlyCategories?: Set<CollectionMember['category']>;
30
+ runBetaCommandsOnly?: boolean;
31
+ replyOn?: {
32
+ disabled?: boolean;
33
+ nonBeta?: boolean;
34
+ };
35
+ customPermissionChecks?: customPermissionChecksFn;
36
+ messagePrefixesArePreRemoved?: boolean;
37
+ }): Promise<this>;
38
+ get(query: string): CollectionMember | undefined;
39
+ loadAll(): Promise<CommandManager['commands']>;
40
+ reload<CMD extends CollectionMember | string>(query: CMD): Promise<CMD extends CollectionMember ? CMD : CollectionMember | undefined>;
41
+ registerCommand(newCommand: CollectionMember, oldCommand?: CollectionMember): Promise<Discord.ApplicationCommand | undefined>;
42
+ }
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/commandManager/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAMtC,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAQrE,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE;IACrE,MAAM,EAAE,OAAO,CACb,SAAS,WAAW,EAAE,EAAE,WAAW,EACnC,SAAS,EAAE,GAAG,SAAS,CAAC,mBAAmB,CAAC,SAAS,WAAW,EAAE,EAAE,WAAW,CAAC,EAAE,GAAG,mBAAmB,CAAC,SAAS,WAAW,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CACjJ,CAAC;IACF,OAAO,EAAE,oBAAoB,CAC3B,SAAS,WAAW,EAAE,EAAE,WAAW,EACnC,SAAS,EAAE,GAAG,SAAS,CAAC,mBAAmB,CAAC,SAAS,WAAW,EAAE,EAAE,WAAW,CAAC,EAAE,GAAG,mBAAmB,CAAC,SAAS,WAAW,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CACjJ,CAAC;CACH,CAAC,CAAC;AAEH,qBAAa,cAAc;;IACzB,QAAQ;iBAA+D,gBAAgB;kBAAY,MAAM;OAAM;IAC/G,MAAM,EAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,YAAY,EAAG,MAAM,CAAC;IACtB,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;IAClC,gBAAgB,EAAG,gBAAgB,CAAC;IACpC,IAAI,EAAG,YAAY,CAAC;IACpB,4BAA4B,UAAS;IAW/B,IAAI,CACR,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAC5B,IAAI,EAAE,YAAY,EAClB,MAAM,GAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,iBAAiB,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QACpD,sBAAsB,CAAC,EAAE,wBAAwB,CAAC;QAClD,4BAA4B,CAAC,EAAE,OAAO,CAAC;KACnC,GACL,OAAO,CAAC,IAAI,CAAC;IAuBhB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAS1C,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAe9C,MAAM,CACV,GAAG,SAAS,gBAAgB,GAAG,MAAM,EACrC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,SAAS,gBAAgB,GAAG,GAAG,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAoFnF,eAAe,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;CA4DpI"}
@@ -0,0 +1,186 @@
1
+ import * as Discord from 'discord.js';
2
+ import { readdir } from 'node:fs/promises';
3
+ import { basename, dirname, join, resolve } from 'node:path';
4
+ import { getDirectories, getFilename, loadFile } from "../../index.js";
5
+ import capitalize from "../../utils/capitalize.js";
6
+ import { Command, CommandUninitialized } from "../command/index.js";
7
+ import { CommandType } from "../utils.js";
8
+ function importDefault(obj) {
9
+ return obj && typeof obj == 'object' && 'default' in obj
10
+ ? obj.default
11
+ : obj;
12
+ }
13
+ export class CommandManager {
14
+ commands = new Discord.Collection();
15
+ client;
16
+ commandsPath;
17
+ doneFn;
18
+ cooldownsManager;
19
+ i18n;
20
+ messagePrefixesArePreRemoved = false;
21
+ #logger = console;
22
+ #devIds = new Set();
23
+ #devOnlyCategories = new Set();
24
+ #runBetaCommandsOnly = false;
25
+ #replyOn = { disabled: false, nonBeta: false };
26
+ #customPermissionChecks;
27
+ #appCommands;
28
+ async init(commandsPath, client, i18n, config = {}) {
29
+ if (config.logger)
30
+ this.#logger = config.logger;
31
+ if (config.cooldownsManager)
32
+ this.cooldownsManager = config.cooldownsManager;
33
+ if (config.devIds)
34
+ this.#devIds = config.devIds;
35
+ if (config.devOnlyCategories)
36
+ this.#devOnlyCategories = config.devOnlyCategories;
37
+ if (config.runBetaCommandsOnly)
38
+ this.#runBetaCommandsOnly = config.runBetaCommandsOnly;
39
+ if (config.replyOn)
40
+ this.#replyOn = { disabled: !!config.replyOn.disabled, nonBeta: !!config.replyOn.nonBeta };
41
+ if (config.messagePrefixesArePreRemoved)
42
+ this.messagePrefixesArePreRemoved = config.messagePrefixesArePreRemoved;
43
+ this.commandsPath = commandsPath;
44
+ this.client = client;
45
+ this.i18n = i18n;
46
+ this.doneFn = config.doneFn;
47
+ this.#customPermissionChecks = config.customPermissionChecks;
48
+ if (!this.client.application)
49
+ throw new Error('Client#application must exist (Client must be logged in!)');
50
+ await this.loadAll();
51
+ return this;
52
+ }
53
+ get(query) {
54
+ const commandName = query.toLowerCase();
55
+ return (this.commands.get(commandName)
56
+ ?? this.commands.find(({ command }) => Object.values(command.aliases).some(e => e.includes(commandName))))?.command;
57
+ }
58
+ async loadAll() {
59
+ this.commands.clear();
60
+ const dirs = await getDirectories(this.commandsPath);
61
+ for (const subFolder of dirs) {
62
+ for (const file of await readdir(join(this.commandsPath, subFolder), { withFileTypes: true })) {
63
+ if (!file.name.endsWith('.js') && !file.isDirectory())
64
+ continue;
65
+ await this.#loadCommand(resolve(file.parentPath, file.name));
66
+ }
67
+ }
68
+ return this.commands;
69
+ }
70
+ async reload(query) {
71
+ const command = this.commands.get(query instanceof Command ? query.name : query.toLowerCase());
72
+ return (command ? this.#loadCommand(command.filePath, command.command) : undefined);
73
+ }
74
+ static #isCollectionMember(obj, initialized) {
75
+ if (initialized == undefined)
76
+ return this.#isCollectionMember(obj, true) || this.#isCollectionMember(obj, false);
77
+ return initialized ? obj instanceof Command : obj instanceof CommandUninitialized;
78
+ }
79
+ async #loadCommand(filePath, oldCommand) {
80
+ const commandFile = importDefault(await loadFile(filePath));
81
+ if (!CommandManager.#isCollectionMember(commandFile, false))
82
+ return;
83
+ let command;
84
+ try {
85
+ command = commandFile.init(this.i18n, getFilename(filePath).toLowerCase(), basename(dirname(filePath)), {
86
+ logger: this.#logger,
87
+ doneFn: this.doneFn,
88
+ cooldownsManager: this.cooldownsManager,
89
+ devIds: this.#devIds,
90
+ devOnlyCategories: this.#devOnlyCategories,
91
+ runBetaCommandsOnly: this.#runBetaCommandsOnly,
92
+ replyOn: this.#replyOn,
93
+ customPermissionChecks: this.#customPermissionChecks,
94
+ messagePrefixesArePreRemoved: this.messagePrefixesArePreRemoved
95
+ });
96
+ }
97
+ catch (err) {
98
+ this.#logger.error(`Error on initializing command file ${filePath}:\n`, err);
99
+ return;
100
+ }
101
+ try {
102
+ const appCommand = await this.registerCommand(command, oldCommand);
103
+ if (appCommand)
104
+ command.commandId = appCommand.id;
105
+ else if (command.types.includes(CommandType.Prefix)) {
106
+ this.#logLoadMsg('Loaded', command.name);
107
+ for (const alias of command.aliases.prefix)
108
+ this.#logLoadMsg('Loaded', command.name, alias);
109
+ }
110
+ }
111
+ catch (err) {
112
+ this.#logger.error(`Error on registering command file ${filePath}:\n`, err);
113
+ return;
114
+ }
115
+ this.commands.set(command.name, { command, filePath });
116
+ return command;
117
+ }
118
+ async #createCommand(command, action, alias) {
119
+ const appCommand = await this.client.application.commands.create(command);
120
+ this.#logLoadMsg(action, appCommand.name, alias);
121
+ return appCommand;
122
+ }
123
+ async #deleteCommand(command, action, alias) {
124
+ let id;
125
+ if ('commandId' in command)
126
+ id = command.commandId;
127
+ else if ('id' in command)
128
+ ({ id } = command);
129
+ if (id)
130
+ await this.client.application.commands.delete(id);
131
+ this.#logLoadMsg(action, command.name, alias);
132
+ }
133
+ async #editCommand(oldCommand, newCommand, action, alias) {
134
+ const appCommand = await this.client.application.commands.edit(oldCommand.id, newCommand);
135
+ this.#logLoadMsg(action, appCommand.name, alias);
136
+ return appCommand;
137
+ }
138
+ async registerCommand(newCommand, oldCommand) {
139
+ if (!newCommand.types.includes(CommandType.Slash))
140
+ return;
141
+ if (!this.#appCommands) {
142
+ this.#appCommands = await this.client.application.commands.fetch({ withLocalizations: true });
143
+ setTimeout(() => this.#appCommands?.clear(), 300_000);
144
+ }
145
+ const isEqual = !!oldCommand?.isEqualTo(newCommand);
146
+ let appCommand;
147
+ if (oldCommand?.types.includes(CommandType.Slash) && !newCommand.types.includes(CommandType.Slash))
148
+ await this.#deleteCommand(oldCommand, 'Deleted');
149
+ else if (newCommand.types.includes(CommandType.Slash)) {
150
+ if (newCommand.disabled) {
151
+ if (oldCommand?.commandId)
152
+ await this.#deleteCommand(oldCommand, 'Deleted Disabled');
153
+ }
154
+ else if (oldCommand?.commandId && isEqual && this.#appCommands.has(oldCommand.commandId))
155
+ appCommand = this.#appCommands.get(oldCommand.commandId);
156
+ else {
157
+ const existing = this.#appCommands.find(e => e.name == newCommand.name), commandData = newCommand;
158
+ if (!existing)
159
+ appCommand = await this.#createCommand(commandData, 'Created');
160
+ else if (newCommand.isEqualTo(existing))
161
+ appCommand = existing;
162
+ else
163
+ appCommand = await this.#editCommand(existing, commandData, 'Reloaded');
164
+ }
165
+ }
166
+ for (const alias of new Set([...oldCommand?.aliases[CommandType.Slash] ?? [], ...newCommand.aliases[CommandType.Slash]]))
167
+ await this.#registerAlias(newCommand, oldCommand, alias, isEqual, this.#appCommands);
168
+ return appCommand;
169
+ }
170
+ async #registerAlias(newCommand, oldCommand, alias, isEqual, existingCommands) {
171
+ const inOld = oldCommand?.aliases[CommandType.Slash].includes(alias), inNew = newCommand.aliases[CommandType.Slash].includes(alias), existing = existingCommands.find(e => e.name == alias);
172
+ if (inOld && !inNew || inNew && newCommand.disabled) {
173
+ if (existing)
174
+ await this.#deleteCommand(existing, `Deleted ${newCommand.disabled ? 'Disabled' : ''}`, alias);
175
+ }
176
+ else if (inOld && inNew && isEqual) {
177
+ const commandClone = newCommand.clone();
178
+ commandClone.name = alias;
179
+ await (existing ? this.#editCommand(existing, commandClone, 'Reloaded', alias) : this.#createCommand(commandClone, 'Created', alias));
180
+ }
181
+ }
182
+ #logLoadMsg(action, name, alias = name) {
183
+ this.#logger.log(`${action} ${capitalize(CommandType.Slash)} Command ${alias}${alias == name ? '' : ' (Alias of ' + name + ')'}`);
184
+ }
185
+ }
186
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/commandManager/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import * as Discord from 'discord.js';
2
+ import { CooldownType } from '../../index.ts';
3
+ import { DefaultContext } from './utils.ts';
4
+ import type { Locale, Translator } from '@mephisto5558/i18n';
5
+ import type { AllContexts, ChatInputCommandInteraction, CommandInitialized as Command, Message, MessageComponentInteraction } from '../../index.ts';
6
+ import type { RunnableReturns } from '../command/utils.ts';
7
+ import type { CommandType } from '../utils.ts';
8
+ import type { CommandOptionConfig, FallbackChannels, MapChannelTypes, PublicAutocompleteGeneratorOptions, autocompleteObject } from './utils.ts';
9
+ export declare class CommandOption<const CT extends readonly CommandType[] = readonly [], const CTX extends AllContexts = DefaultContext, AO = undefined, const ChildrenOptions extends readonly CommandOptionConfig<CT, CTX>[] = readonly CommandOptionConfig<CT, CTX>[], T extends Discord.ApplicationCommandOptionType = Discord.ApplicationCommandOptionType> {
10
+ #private;
11
+ name: Lowercase<string>;
12
+ id: `${string}.options.${CommandOption['name']}`;
13
+ position: number;
14
+ nameLocalizations?: Partial<Record<Locale, CommandOption['name']>>;
15
+ description: string;
16
+ descriptionLocalizations: Partial<Record<Locale, string>>;
17
+ type: T;
18
+ required: boolean;
19
+ cooldowns: Record<CooldownType, number>;
20
+ contexts: CTX;
21
+ disabled: boolean;
22
+ disabledReason: string | undefined;
23
+ get autocomplete(): boolean;
24
+ strictAutocomplete: boolean;
25
+ autocompleteOptions?: NonNullable<GetAll<Extract<CommandOptionConfig<NoInfer<CT>, NoInfer<CTX>>, {
26
+ type: T;
27
+ }>, 'autocompleteOptions'>['autocompleteOptions']> | undefined;
28
+ choices?: IfExtends<T, GetAll<Discord.ApplicationCommandOption, 'choices'>['type'], {
29
+ ifTrue: readonly Discord.ApplicationCommandOptionChoiceData[];
30
+ }> | undefined;
31
+ channelTypes?: NonNullable<GetAll<Extract<CommandOptionConfig<NoInfer<CT>, NoInfer<CTX>>, {
32
+ type: T;
33
+ }>, 'channelTypes'>['channelTypes']> | undefined;
34
+ minValue?: NonNullable<GetAll<Extract<CommandOptionConfig<NoInfer<CT>, NoInfer<CTX>>, {
35
+ type: T;
36
+ }>, 'minValue'>['minValue']> | undefined;
37
+ maxValue?: NonNullable<GetAll<Extract<CommandOptionConfig<NoInfer<CT>, NoInfer<CTX>>, {
38
+ type: T;
39
+ }>, 'maxValue'>['maxValue']> | undefined;
40
+ minLength?: NonNullable<GetAll<Extract<CommandOptionConfig<NoInfer<CT>, NoInfer<CTX>>, {
41
+ type: T;
42
+ }>, 'minLength'>['minLength']> | undefined;
43
+ maxLength?: NonNullable<GetAll<Extract<CommandOptionConfig<NoInfer<CT>, NoInfer<CTX>>, {
44
+ type: T;
45
+ }>, 'maxLength'>['maxLength']> | undefined;
46
+ options?: IfExtends<T, GetAll<Discord.ApplicationCommandOption, 'options'>['type'], {
47
+ ifTrue: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>>[];
48
+ }> | undefined;
49
+ run?: (this: ExtendsMultiMatch<CommandType, CT, [
50
+ [
51
+ CommandType.Slash,
52
+ ChatInputCommandInteraction<NoInfer<CTX>, NoInfer<ChildrenOptions>>
53
+ ],
54
+ [
55
+ CommandType.Component,
56
+ MessageComponentInteraction<NoInfer<CTX>>
57
+ ],
58
+ [
59
+ CommandType.Prefix,
60
+ Message<NoInfer<CTX>>
61
+ ]
62
+ ]>, lang: Translator<false, Locale>, options: NoInfer<AO>, data: {
63
+ client: Discord.Client<true>;
64
+ command: Command<NoInfer<CT>, NoInfer<CTX>>;
65
+ option: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>;
66
+ }) => unknown;
67
+ getChannel<This, RetSelf extends boolean = false>(this: This, interaction: ExtendsMultiMatch<CommandType, CT, [
68
+ [
69
+ CommandType.Slash,
70
+ ChatInputCommandInteraction<NoInfer<CTX>, NoInfer<ChildrenOptions>>
71
+ ],
72
+ [
73
+ CommandType.Prefix,
74
+ Message<NoInfer<CTX>>
75
+ ]
76
+ ]>, returnSelf: RetSelf): ([
77
+ Discord.ChannelType[]
78
+ ] extends [This extends {
79
+ channelTypes: infer CHT;
80
+ } ? CHT : never] ? FallbackChannels<NoInfer<CT>, NoInfer<CTX>> : This extends {
81
+ channelTypes: infer CHT extends readonly Discord.ChannelType[];
82
+ } ? MapChannelTypes<CHT> : FallbackChannels<NoInfer<CT>, NoInfer<CTX>>) | IfD<RetSelf, This extends {
83
+ run?: unknown;
84
+ } ? ThisParameterType<NonNullable<This['run']>> extends {
85
+ channel: infer C;
86
+ } ? C : undefined : undefined, undefined>;
87
+ isRunable(interaction: ExtendsMultiMatch<CommandType, CT, [
88
+ [
89
+ CommandType.Slash,
90
+ ChatInputCommandInteraction<NoInfer<CTX>, NoInfer<ChildrenOptions>>
91
+ ],
92
+ [
93
+ CommandType.Prefix,
94
+ Message<NoInfer<CTX>>
95
+ ]
96
+ ]>, command: Command<NoInfer<CT>, NoInfer<CTX>>, wrapperTranslator: Translator<false, Locale>, args?: string[]): Promise<RunnableReturns | boolean>;
97
+ generateAutocomplete(...args: PublicAutocompleteGeneratorOptions<NoInfer<CT>, NoInfer<CTX>>): Promise<[] | autocompleteObject[]>;
98
+ isEqualTo(opt: CommandOption<readonly CommandType[], AllContexts> | Discord.ApplicationCommandOption): boolean;
99
+ clone(): CommandOptionUninitialized<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>;
100
+ }
101
+ export declare class CommandOptionUninitialized<const CT extends readonly CommandType[] = readonly [], const CTX extends AllContexts = DefaultContext, AO = undefined, const ChildrenOptions extends readonly CommandOptionConfig<CT, CTX>[] = readonly CommandOptionConfig<CT, CTX>[], T extends Discord.ApplicationCommandOptionType = Discord.ApplicationCommandOptionType> {
102
+ type: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['type'];
103
+ name: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['name'];
104
+ options?: IfExtends<T, GetAll<Discord.ApplicationCommandOption, 'options'>['type'], {
105
+ ifTrue: CommandOptionUninitialized<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>>[];
106
+ }> | undefined;
107
+ required: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['required'];
108
+ contexts: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['contexts'];
109
+ run: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['run'];
110
+ minLength: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['minLength'];
111
+ maxLength: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['maxLength'];
112
+ minValue: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['minValue'];
113
+ maxValue: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['maxValue'];
114
+ choices: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['choices'];
115
+ autocompleteOptions: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['autocompleteOptions'];
116
+ strictAutocomplete: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['strictAutocomplete'];
117
+ channelTypes: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['channelTypes'];
118
+ cooldowns: CommandOption<NoInfer<CT>, NoInfer<CTX>, NoInfer<AO>, NoInfer<ChildrenOptions>, NoInfer<T>>['cooldowns'];
119
+ constructor(config: ShallowPrettify<Extract<CommandOptionConfig<CT, CTX, AO, ChildrenOptions>, {
120
+ type: T;
121
+ }>>);
122
+ init(...args: ConstructorParameters<typeof CommandOption<CT, CTX, AO, ChildrenOptions, T>> extends [unknown, ...infer R] ? R : never): CommandOption<CT, CTX, AO, ChildrenOptions, T>;
123
+ }
124
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/classes/commandOption/index.ts"],"names":[],"mappings":"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"}