@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.
- package/LICENSE +21 -0
- package/README.md +20 -0
- package/dist/classes/command/index.d.ts +99 -0
- package/dist/classes/command/index.d.ts.map +1 -0
- package/dist/classes/command/index.js +378 -0
- package/dist/classes/command/index.js.map +1 -0
- package/dist/classes/command/utils.d.ts +29 -0
- package/dist/classes/command/utils.d.ts.map +1 -0
- package/dist/classes/command/utils.js +2 -0
- package/dist/classes/command/utils.js.map +1 -0
- package/dist/classes/commandManager/index.d.ts +43 -0
- package/dist/classes/commandManager/index.d.ts.map +1 -0
- package/dist/classes/commandManager/index.js +186 -0
- package/dist/classes/commandManager/index.js.map +1 -0
- package/dist/classes/commandOption/index.d.ts +124 -0
- package/dist/classes/commandOption/index.d.ts.map +1 -0
- package/dist/classes/commandOption/index.js +378 -0
- package/dist/classes/commandOption/index.js.map +1 -0
- package/dist/classes/commandOption/utils.d.ts +145 -0
- package/dist/classes/commandOption/utils.d.ts.map +1 -0
- package/dist/classes/commandOption/utils.js +3 -0
- package/dist/classes/commandOption/utils.js.map +1 -0
- package/dist/classes/utils.d.ts +42 -0
- package/dist/classes/utils.d.ts.map +1 -0
- package/dist/classes/utils.js +81 -0
- package/dist/classes/utils.js.map +1 -0
- package/dist/db.d.ts +22 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +2 -0
- package/dist/db.js.map +1 -0
- package/dist/discord.js.d.ts +172 -0
- package/dist/discord.js.d.ts.map +1 -0
- package/dist/discord.js.js +2 -0
- package/dist/discord.js.js.map +1 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/CooldownsManager.d.ts +8 -0
- package/dist/utils/CooldownsManager.d.ts.map +1 -0
- package/dist/utils/CooldownsManager.js +39 -0
- package/dist/utils/CooldownsManager.js.map +1 -0
- package/dist/utils/capitalize.d.ts +2 -0
- package/dist/utils/capitalize.d.ts.map +1 -0
- package/dist/utils/capitalize.js +4 -0
- package/dist/utils/capitalize.js.map +1 -0
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +2 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/getCommands.d.ts +18 -0
- package/dist/utils/getCommands.d.ts.map +1 -0
- package/dist/utils/getCommands.js +36 -0
- package/dist/utils/getCommands.js.map +1 -0
- package/dist/utils/getDirectories.d.ts +2 -0
- package/dist/utils/getDirectories.d.ts.map +1 -0
- package/dist/utils/getDirectories.js +5 -0
- package/dist/utils/getDirectories.js.map +1 -0
- package/dist/utils/getFilename.d.ts +5 -0
- package/dist/utils/getFilename.d.ts.map +1 -0
- package/dist/utils/getFilename.js +5 -0
- package/dist/utils/getFilename.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/isSnowflake.d.ts +2 -0
- package/dist/utils/isSnowflake.d.ts.map +1 -0
- package/dist/utils/isSnowflake.js +4 -0
- package/dist/utils/isSnowflake.js.map +1 -0
- package/dist/utils/loadFile.d.ts +2 -0
- package/dist/utils/loadFile.d.ts.map +1 -0
- package/dist/utils/loadFile.js +32 -0
- package/dist/utils/loadFile.js.map +1 -0
- package/package.json +58 -0
- package/translationSchema.jsonc +114 -0
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import * as Discord from 'discord.js';
|
|
2
|
+
import { ContextType, CooldownType, isSnowflake } from "../../index.js";
|
|
3
|
+
import { autocompleteOptionsMaxAmt, choiceValueMaxLength, choiceValueMinLength, choicesMaxAmt, descriptionMaxLength } from "../../utils/constants.js";
|
|
4
|
+
import { CommandValidationError, cooldownConverter, equal, isMessage } from "../utils.js";
|
|
5
|
+
import { DefaultContext } from "./utils.js";
|
|
6
|
+
export class CommandOption {
|
|
7
|
+
name;
|
|
8
|
+
id;
|
|
9
|
+
position = 0;
|
|
10
|
+
nameLocalizations;
|
|
11
|
+
description;
|
|
12
|
+
descriptionLocalizations = {};
|
|
13
|
+
type;
|
|
14
|
+
required;
|
|
15
|
+
cooldowns;
|
|
16
|
+
contexts;
|
|
17
|
+
disabled;
|
|
18
|
+
disabledReason;
|
|
19
|
+
get autocomplete() { return !!this.autocompleteOptions; }
|
|
20
|
+
strictAutocomplete;
|
|
21
|
+
autocompleteOptions;
|
|
22
|
+
choices;
|
|
23
|
+
channelTypes;
|
|
24
|
+
minValue;
|
|
25
|
+
maxValue;
|
|
26
|
+
minLength;
|
|
27
|
+
maxLength;
|
|
28
|
+
options;
|
|
29
|
+
run;
|
|
30
|
+
#i18n;
|
|
31
|
+
#cooldownsManager;
|
|
32
|
+
#logger;
|
|
33
|
+
#messagePrefixesArePreRemoved;
|
|
34
|
+
constructor(base, i18n, parentId, config) {
|
|
35
|
+
this.type = base.type;
|
|
36
|
+
this.name = base.name;
|
|
37
|
+
this.required = base.required;
|
|
38
|
+
this.contexts = base.contexts;
|
|
39
|
+
this.run = base.run;
|
|
40
|
+
this.minLength = base.minLength;
|
|
41
|
+
this.maxLength = base.maxLength;
|
|
42
|
+
this.minValue = base.minValue;
|
|
43
|
+
this.maxValue = base.maxValue;
|
|
44
|
+
this.choices = base.choices;
|
|
45
|
+
this.autocompleteOptions = base.autocompleteOptions;
|
|
46
|
+
this.strictAutocomplete = base.strictAutocomplete;
|
|
47
|
+
this.channelTypes = base.channelTypes;
|
|
48
|
+
this.cooldowns = base.cooldowns;
|
|
49
|
+
this.#messagePrefixesArePreRemoved = !!config.messagePrefixesArePreRemoved;
|
|
50
|
+
this.#i18n = i18n;
|
|
51
|
+
this.#logger = config.logger ?? console;
|
|
52
|
+
this.#cooldownsManager = config.cooldownsManager;
|
|
53
|
+
this.id = `${parentId}.options.${this.name}`;
|
|
54
|
+
this.position = config.position ?? 0;
|
|
55
|
+
if (base.options) {
|
|
56
|
+
this.options = base.options.map((e, i) => e.init(i18n, this.id, {
|
|
57
|
+
cooldownsManager: this.#cooldownsManager,
|
|
58
|
+
logger: this.#logger,
|
|
59
|
+
position: i,
|
|
60
|
+
messagePrefixesArePreRemoved: this.#messagePrefixesArePreRemoved
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
this.#validate();
|
|
64
|
+
this.#localize();
|
|
65
|
+
}
|
|
66
|
+
getChannel(interaction, returnSelf = false) {
|
|
67
|
+
if (this.type != Discord.ApplicationCommandOptionType.Channel)
|
|
68
|
+
throw new Error(`This method does not run on ${Discord.ApplicationCommandOptionType[this.type]} options!`);
|
|
69
|
+
let target = isMessage(interaction)
|
|
70
|
+
? interaction.mentions.channels.first()
|
|
71
|
+
: interaction.options.getChannel(this.name, false, this.channelTypes);
|
|
72
|
+
if (!target && isMessage(interaction))
|
|
73
|
+
target = interaction.guild?.channels.cache.find(e => [e.id, e.name].some(e => interaction.content.includes(e)));
|
|
74
|
+
if (target)
|
|
75
|
+
return target;
|
|
76
|
+
return returnSelf ? interaction.channel : undefined;
|
|
77
|
+
}
|
|
78
|
+
#validate() {
|
|
79
|
+
if (this.disabled) {
|
|
80
|
+
if (this.disabledReason)
|
|
81
|
+
return;
|
|
82
|
+
throw new CommandValidationError('A disabled command requires a disabledReason!', this);
|
|
83
|
+
}
|
|
84
|
+
if (/[A-Z]/.test(this.name)) {
|
|
85
|
+
this.#logger.error(`"${this.name}" (${this.id}.name) has uppercase letters! Fixing.`);
|
|
86
|
+
this.name = this.name.toLowerCase();
|
|
87
|
+
}
|
|
88
|
+
CommandOption.validateOptionOrder(this);
|
|
89
|
+
}
|
|
90
|
+
#localize() {
|
|
91
|
+
for (const [locale] of this.#i18n.availableLocales) {
|
|
92
|
+
const requiredTranslator = this.#i18n.getTranslator({ locale, errorNotFound: true, backupPaths: [this.id] }), optionalTranslator = this.#i18n.getTranslator({ locale, undefinedNotFound: true, backupPaths: [this.id] }), localizedDescription = locale == this.#i18n.config.defaultLocale ? optionalTranslator('description') : requiredTranslator('description');
|
|
93
|
+
if (!localizedDescription) {
|
|
94
|
+
if (!this.disabled)
|
|
95
|
+
this.#logger.warn(`Missing "${locale}" description for command "${this.name}" (${this.id}.description)`);
|
|
96
|
+
}
|
|
97
|
+
else if (localizedDescription.length > descriptionMaxLength && !this.disabled)
|
|
98
|
+
this.#logger.warn(`"${locale}" description for command "${this.name}" (${this.id}.description) is too long (max length is 100)! Slicing.`);
|
|
99
|
+
if (localizedDescription) {
|
|
100
|
+
if (locale == this.#i18n.config.defaultLocale)
|
|
101
|
+
this.description = localizedDescription.slice(0, descriptionMaxLength);
|
|
102
|
+
else
|
|
103
|
+
this.descriptionLocalizations[locale] = localizedDescription.slice(0, descriptionMaxLength);
|
|
104
|
+
}
|
|
105
|
+
if (this.choices)
|
|
106
|
+
this.#localizeChoices(locale);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
#localizeChoices(locale) {
|
|
110
|
+
if (!this.choices)
|
|
111
|
+
return;
|
|
112
|
+
if (this.choices.length > choicesMaxAmt) {
|
|
113
|
+
throw new Error(`Too many choices (${this.choices.length}) found for option "${this.name}"). Max is ${choicesMaxAmt}.`
|
|
114
|
+
+ 'Use autocompleteOptions with strictAutocomplete instead.');
|
|
115
|
+
}
|
|
116
|
+
const optionalTranslator = this.#i18n.getTranslator({ locale, undefinedNotFound: true, backupPaths: [this.id] });
|
|
117
|
+
for (const choice of this.choices) {
|
|
118
|
+
choice.nameLocalizations ??= {};
|
|
119
|
+
const localizedChoice = optionalTranslator(`choices.${choice.value}`) ?? choice.value.toString();
|
|
120
|
+
if (localizedChoice) {
|
|
121
|
+
const errMsg = `"${locale}" choice name localization for "${choice.value}" of option "${this.name}" `
|
|
122
|
+
+ `(${this.id}.choices.${choice.value}) is too`;
|
|
123
|
+
if (localizedChoice.length < choiceValueMinLength) {
|
|
124
|
+
this.#logger.warn(`${errMsg} short (min length is ${choiceValueMinLength})! Skipping this localization.`);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
else if (localizedChoice.length > choiceValueMaxLength)
|
|
128
|
+
this.#logger.warn(`${errMsg} long (max length is ${choiceValueMaxLength})! Slicing.`);
|
|
129
|
+
if (locale == this.#i18n.config.defaultLocale)
|
|
130
|
+
choice.name = localizedChoice;
|
|
131
|
+
else if (locale == 'en') {
|
|
132
|
+
choice.nameLocalizations[Discord.Locale.EnglishGB] = localizedChoice;
|
|
133
|
+
choice.nameLocalizations[Discord.Locale.EnglishUS] = localizedChoice;
|
|
134
|
+
}
|
|
135
|
+
else
|
|
136
|
+
choice.nameLocalizations[locale] = localizedChoice;
|
|
137
|
+
}
|
|
138
|
+
else if (choice.name != choice.value && !this.disabled) {
|
|
139
|
+
this.#logger.warn(`Missing "${locale}" choice name localization for "${choice.value}" in option "${this.name}" (${this.id}.choices.${choice.value})`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async isRunable(interaction, command, wrapperTranslator, args) {
|
|
144
|
+
if ([Discord.ApplicationCommandOptionType.SubcommandGroup, Discord.ApplicationCommandOptionType.Subcommand].includes(this.type)
|
|
145
|
+
&& !this.contexts.includes(ContextType.BotDM) && interaction.channel.type == Discord.ChannelType.DM)
|
|
146
|
+
return ['guildOnly'];
|
|
147
|
+
if (this.type == Discord.ApplicationCommandOptionType.SubcommandGroup)
|
|
148
|
+
return this.#isRunableSubcommandGroup(interaction, command, wrapperTranslator, args);
|
|
149
|
+
if (this.type == Discord.ApplicationCommandOptionType.Subcommand)
|
|
150
|
+
return this.#isRunableSubcommand(interaction, command, wrapperTranslator, args);
|
|
151
|
+
const option = isMessage(interaction)
|
|
152
|
+
? undefined
|
|
153
|
+
: interaction.options.get(this.name)?.value, arg = args?.[this.position];
|
|
154
|
+
if (this.required && option === undefined && !arg) {
|
|
155
|
+
return ['paramRequired', {
|
|
156
|
+
option: this.name,
|
|
157
|
+
description: (wrapperTranslator.config.locale ? this.descriptionLocalizations[wrapperTranslator.config.locale] : undefined)
|
|
158
|
+
?? this.descriptionLocalizations[wrapperTranslator.defaultConfig.defaultLocale] ?? this.description
|
|
159
|
+
}];
|
|
160
|
+
}
|
|
161
|
+
if (isMessage(interaction) && arg) {
|
|
162
|
+
if (this.type == Discord.ApplicationCommandOptionType.Channel && this.channelTypes) {
|
|
163
|
+
let channel;
|
|
164
|
+
if (isSnowflake(arg))
|
|
165
|
+
channel = interaction.guild?.channels.cache.get(arg);
|
|
166
|
+
if (channel && !this.channelTypes.includes(channel.type))
|
|
167
|
+
return ['invalidChannelType', this.name];
|
|
168
|
+
}
|
|
169
|
+
if (this.autocomplete && this.strictAutocomplete
|
|
170
|
+
&& !(await this.generateAutocomplete(interaction, arg, wrapperTranslator.config.locale ?? wrapperTranslator.defaultConfig.defaultLocale)).some(e => e.value.toString().toLowerCase() === arg.toLowerCase())) {
|
|
171
|
+
if (typeof this.autocompleteOptions == 'function')
|
|
172
|
+
return ['strictAutocompleteNoMatch', this.name];
|
|
173
|
+
let availableOptions;
|
|
174
|
+
if (!this.autocompleteOptions)
|
|
175
|
+
availableOptions = '';
|
|
176
|
+
else if (Array.isArray(this.autocompleteOptions))
|
|
177
|
+
availableOptions = this.autocompleteOptions.map(e => (typeof e == 'object' ? e.value : e).toString()).map(Discord.inlineCode).join(', ');
|
|
178
|
+
else if (typeof this.autocompleteOptions == 'object')
|
|
179
|
+
availableOptions = this.autocompleteOptions.value;
|
|
180
|
+
else
|
|
181
|
+
availableOptions = this.autocompleteOptions;
|
|
182
|
+
return ['strictAutocompleteNoMatchWValues', { option: this.name, availableOptions: availableOptions.toString() }];
|
|
183
|
+
}
|
|
184
|
+
if (this.choices && !this.choices.some(e => e.value.toString().toLowerCase() == arg.toLowerCase())) {
|
|
185
|
+
return ['strictAutocompleteNoMatchWValues', {
|
|
186
|
+
option: this.name,
|
|
187
|
+
availableOptions: this.choices.map(e => Discord.inlineCode(e.value.toString())).join(', ')
|
|
188
|
+
}];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
async #isRunableSubcommandGroup(interaction, command, wrapperTranslator, args) {
|
|
194
|
+
const subcommandName = isMessage(interaction)
|
|
195
|
+
? args?.[this.position]
|
|
196
|
+
: interaction.options.getSubcommand(true), subcommand = this.options?.find(e => e.name == subcommandName);
|
|
197
|
+
return subcommand?.isRunable(interaction, command, wrapperTranslator, isMessage(interaction) ? args?.slice(1) : args) ?? false;
|
|
198
|
+
}
|
|
199
|
+
async #isRunableSubcommand(interaction, command, wrapperTranslator, args) {
|
|
200
|
+
if (!this.options)
|
|
201
|
+
return false;
|
|
202
|
+
for (const option of this.options) {
|
|
203
|
+
const err = await option.isRunable(interaction, command, wrapperTranslator, args);
|
|
204
|
+
if (err)
|
|
205
|
+
return err;
|
|
206
|
+
}
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
async generateAutocomplete(interaction, query, locale, translator, options = this.autocompleteOptions) {
|
|
210
|
+
if (options == undefined)
|
|
211
|
+
return [];
|
|
212
|
+
translator ??= this.#i18n.getTranslator({ locale, undefinedNotFound: true, backupPaths: [`${this.id}.choices`] });
|
|
213
|
+
if (typeof options == 'function')
|
|
214
|
+
options = await options.call(interaction, query);
|
|
215
|
+
if (typeof options == 'string' || typeof options == 'number')
|
|
216
|
+
return [{ name: translator(options.toString()) ?? options.toString(), value: options }];
|
|
217
|
+
if (Array.isArray(options)) {
|
|
218
|
+
return (await Promise.all(options
|
|
219
|
+
.filter(e => !query || (typeof e == 'object' ? e.value : e).toString().toLowerCase().includes(query.toLowerCase()))
|
|
220
|
+
.slice(0, autocompleteOptionsMaxAmt)
|
|
221
|
+
.map(async (e) => this.generateAutocomplete(interaction, query, locale, translator, e)))).flat();
|
|
222
|
+
}
|
|
223
|
+
return [options];
|
|
224
|
+
}
|
|
225
|
+
updateCooldowns(interaction) {
|
|
226
|
+
return this.#cooldownsManager.update(this.id, interaction, this.cooldowns);
|
|
227
|
+
}
|
|
228
|
+
isEqualTo(opt) {
|
|
229
|
+
for (const prop of ['name', 'description', 'type', 'autocomplete', 'required', 'minValue', 'maxValue', 'minLength', 'maxLength']) {
|
|
230
|
+
const optProp = prop in opt ? opt[prop] : undefined;
|
|
231
|
+
if (this[prop] != (typeof this[prop] == 'boolean' ? !!optProp : optProp))
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
if ((this.options?.length ?? 0) != ('options' in opt && opt.options ? opt.options.length : 0)
|
|
235
|
+
|| !equal(this.nameLocalizations, opt.nameLocalizations)
|
|
236
|
+
|| !equal(this.descriptionLocalizations, opt.descriptionLocalizations)
|
|
237
|
+
|| ('choices' in opt && opt.choices && !this.#choicesEqualTo(opt.choices))
|
|
238
|
+
|| ('channelTypes' in opt && opt.channelTypes && !this.#channelTypesEqualTo(opt.channelTypes)))
|
|
239
|
+
return false;
|
|
240
|
+
if (this.options?.length && 'options' in opt && opt.options) {
|
|
241
|
+
for (const option of this.options) {
|
|
242
|
+
const other = opt.options.find(e => e.name == option.name);
|
|
243
|
+
if (!other || !option.isEqualTo(other))
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
#choicesEqualTo(choices) {
|
|
250
|
+
if ((this.choices?.length ?? 0) != choices.length)
|
|
251
|
+
return false;
|
|
252
|
+
if (this.choices?.length) {
|
|
253
|
+
for (const choice of this.choices) {
|
|
254
|
+
const other = choices.find(e => e.name == choice.name);
|
|
255
|
+
if (!other || !equal(choice, other))
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return true;
|
|
260
|
+
}
|
|
261
|
+
#channelTypesEqualTo(channelTypes) {
|
|
262
|
+
if ((this.channelTypes?.length ?? 0) != channelTypes.length)
|
|
263
|
+
return false;
|
|
264
|
+
if (this.channelTypes?.length) {
|
|
265
|
+
for (const type of this.channelTypes)
|
|
266
|
+
if (!channelTypes.includes(type))
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
clone() {
|
|
272
|
+
return new CommandOptionUninitialized(this);
|
|
273
|
+
}
|
|
274
|
+
static validateOptionOrder(baseOption) {
|
|
275
|
+
if (!baseOption.options?.length)
|
|
276
|
+
return;
|
|
277
|
+
let optionalOption;
|
|
278
|
+
const optionMap = new Map();
|
|
279
|
+
for (const option of baseOption.options) {
|
|
280
|
+
if (!option.required)
|
|
281
|
+
optionalOption = option;
|
|
282
|
+
else if (optionalOption) {
|
|
283
|
+
throw new CommandValidationError(`Invalid option order in command "${baseOption.id}".`
|
|
284
|
+
+ `Required options ("${option.id}") cannot appear after optional options (${optionalOption.id}).`, baseOption, option);
|
|
285
|
+
}
|
|
286
|
+
if (optionMap.has(option.name)) {
|
|
287
|
+
throw new CommandValidationError('A option name must be unique across all subcommands of the same command.'
|
|
288
|
+
+ `Found duplicate name "${option.name}": "${optionMap.get(option.name).id}" and "${option.id}".`, baseOption, option);
|
|
289
|
+
}
|
|
290
|
+
else
|
|
291
|
+
optionMap.set(option.name, option);
|
|
292
|
+
if (!option.required)
|
|
293
|
+
optionalOption = option;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
export class CommandOptionUninitialized {
|
|
298
|
+
type;
|
|
299
|
+
name;
|
|
300
|
+
options;
|
|
301
|
+
required = false;
|
|
302
|
+
contexts = DefaultContext;
|
|
303
|
+
run;
|
|
304
|
+
minLength;
|
|
305
|
+
maxLength;
|
|
306
|
+
minValue;
|
|
307
|
+
maxValue;
|
|
308
|
+
choices;
|
|
309
|
+
autocompleteOptions;
|
|
310
|
+
strictAutocomplete = false;
|
|
311
|
+
channelTypes;
|
|
312
|
+
cooldowns = Object.fromEntries(Object.values(CooldownType).map(e => [e, 0]));
|
|
313
|
+
constructor(config) {
|
|
314
|
+
this.type = config.type;
|
|
315
|
+
this.name = config.name;
|
|
316
|
+
if (config instanceof CommandOption) {
|
|
317
|
+
for (const key of Object.getOwnPropertyNames(config)) {
|
|
318
|
+
const descriptor = Object.getOwnPropertyDescriptor(config, key)
|
|
319
|
+
?? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(config), key);
|
|
320
|
+
if (!descriptor || descriptor.get || descriptor.writable === false)
|
|
321
|
+
continue;
|
|
322
|
+
const value = config[key];
|
|
323
|
+
if (key == 'options')
|
|
324
|
+
this.options = value.map(opt => opt.clone());
|
|
325
|
+
else if (value && typeof value == 'object' && typeof value != 'function')
|
|
326
|
+
this[key] = Array.isArray(value) ? [...value] : { ...value };
|
|
327
|
+
else
|
|
328
|
+
this[key] = value;
|
|
329
|
+
}
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
if ('required' in config)
|
|
333
|
+
this.required = config.required;
|
|
334
|
+
switch (config.type) {
|
|
335
|
+
case Discord.ApplicationCommandOptionType.SubcommandGroup:
|
|
336
|
+
case Discord.ApplicationCommandOptionType.Subcommand:
|
|
337
|
+
if ('cooldowns' in config)
|
|
338
|
+
Object.fromEntries(Object.entries(this.cooldowns).map(e => cooldownConverter(config.cooldowns, ...e)));
|
|
339
|
+
if ('contexts' in config)
|
|
340
|
+
this.contexts = config.contexts;
|
|
341
|
+
if ('options' in config) {
|
|
342
|
+
this.options = (config.options ?? []).map(opt => (opt instanceof CommandOptionUninitialized ? opt : new CommandOptionUninitialized(opt)));
|
|
343
|
+
}
|
|
344
|
+
if ('run' in config)
|
|
345
|
+
this.run = config.run;
|
|
346
|
+
break;
|
|
347
|
+
case Discord.ApplicationCommandOptionType.String:
|
|
348
|
+
if ('minLength' in config)
|
|
349
|
+
this.minLength = config.minLength;
|
|
350
|
+
if ('maxLength' in config)
|
|
351
|
+
this.maxLength = config.maxLength;
|
|
352
|
+
case Discord.ApplicationCommandOptionType.Integer:
|
|
353
|
+
case Discord.ApplicationCommandOptionType.Number:
|
|
354
|
+
if (config.type != Discord.ApplicationCommandOptionType.String) {
|
|
355
|
+
if ('minValue' in config)
|
|
356
|
+
this.minValue = config.minValue;
|
|
357
|
+
if ('maxValue' in config)
|
|
358
|
+
this.maxValue = config.maxValue;
|
|
359
|
+
}
|
|
360
|
+
if ('choices' in config)
|
|
361
|
+
this.choices = config.choices.map(e => ({ name: String(e), value: e }));
|
|
362
|
+
if ('autocompleteOptions' in config)
|
|
363
|
+
this.autocompleteOptions = config.autocompleteOptions;
|
|
364
|
+
if ('strictAutocomplete' in config)
|
|
365
|
+
this.strictAutocomplete = config.strictAutocomplete;
|
|
366
|
+
break;
|
|
367
|
+
case Discord.ApplicationCommandOptionType.Channel:
|
|
368
|
+
if ('channelTypes' in config)
|
|
369
|
+
this.channelTypes = config.channelTypes;
|
|
370
|
+
break;
|
|
371
|
+
default:
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
init(...args) {
|
|
375
|
+
return new CommandOption(this, ...args);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/commandOption/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { ContextType } from '../../index.ts';
|
|
2
|
+
import type * as Discord from 'discord.js';
|
|
3
|
+
import type { Locale, Translator } from '@mephisto5558/i18n';
|
|
4
|
+
import type { AllContexts, AutocompleteInteraction, ChatInputCommandInteraction, CommandInitialized as Command, CommandOptionInitialized as CommandOption, Message, MessageComponentInteraction, OptionsG, SharedConfig } from '../../index.ts';
|
|
5
|
+
import type { CommandType } from '../utils.ts';
|
|
6
|
+
export declare const DefaultContext: readonly [ContextType.Guild];
|
|
7
|
+
export type DefaultContext = typeof DefaultContext;
|
|
8
|
+
export type autocompleteObject = Pick<Discord.ApplicationCommandOptionChoiceData, 'name' | 'value'>;
|
|
9
|
+
export type autocompleteOption = autocompleteObject['value'] | autocompleteObject;
|
|
10
|
+
export type autocompleteFunction<CT extends readonly CommandType[], CTX extends AllContexts> = (this: ExtendsMultiMatch<CommandType, CT, [
|
|
11
|
+
[
|
|
12
|
+
CommandType.Slash,
|
|
13
|
+
AutocompleteInteraction<NoInfer<CTX>>
|
|
14
|
+
],
|
|
15
|
+
[
|
|
16
|
+
CommandType.Prefix,
|
|
17
|
+
Message<NoInfer<CTX>>
|
|
18
|
+
]
|
|
19
|
+
]>, query: string) => autocompleteOption[] | Promise<autocompleteOption[]>;
|
|
20
|
+
export type autocompleteOptions<CT extends readonly CommandType[], CTX extends AllContexts> = autocompleteOption | autocompleteOption[] | autocompleteFunction<CT, CTX>;
|
|
21
|
+
export type MapChannelTypes<CT extends readonly Discord.ChannelType[]> = ShallowPrettify<Extract<Discord.Channel, {
|
|
22
|
+
type: CT[number];
|
|
23
|
+
}>>;
|
|
24
|
+
export type FallbackChannels<CT extends readonly CommandType[], CTX extends AllContexts> = ExtendsMultiMatch<CommandType, CT, [
|
|
25
|
+
[
|
|
26
|
+
CommandType.Slash,
|
|
27
|
+
ChatInputCommandInteraction<NoInfer<CTX>>
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
CommandType.Component,
|
|
31
|
+
MessageComponentInteraction<NoInfer<CTX>> & {
|
|
32
|
+
commandName: Command['name'];
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
[
|
|
36
|
+
CommandType.Prefix,
|
|
37
|
+
Message<NoInfer<CTX>>
|
|
38
|
+
]
|
|
39
|
+
]>['channel'];
|
|
40
|
+
interface BaseOptionConfig {
|
|
41
|
+
name: CommandOption['name'];
|
|
42
|
+
nameLocalizations?: Partial<Record<Locale, Command['name']>>;
|
|
43
|
+
}
|
|
44
|
+
interface BaseSubcommandConfig<CTX extends AllContexts> extends SharedConfig<CTX>, BaseOptionConfig {
|
|
45
|
+
}
|
|
46
|
+
interface BasePrimitiveCommandOptionConfig<CT extends readonly CommandType[], CTX extends AllContexts> extends BaseOptionConfig {
|
|
47
|
+
required?: boolean;
|
|
48
|
+
strictAutocomplete?: boolean;
|
|
49
|
+
autocompleteOptions?: autocompleteOptions<CT, CTX>;
|
|
50
|
+
choices?: readonly Discord.ApplicationCommandOptionChoiceData['value'][];
|
|
51
|
+
}
|
|
52
|
+
export interface SubcommandGroupConfig<CT extends readonly CommandType[], CTX extends AllContexts, AO = never, ChildrenOptions extends readonly SubcommandConfig<CT, CTX, unknown>[] = readonly SubcommandConfig<CT, CTX, unknown>[]> extends BaseSubcommandConfig<CTX>, StrictOmit<LooseOmit<Discord.ApplicationCommandSubGroup, keyof BaseSubcommandConfig<CTX>>, 'options'> {
|
|
53
|
+
options: ChildrenOptions;
|
|
54
|
+
run?(this: ExtendsMultiMatch<CommandType, CT, [
|
|
55
|
+
[
|
|
56
|
+
CommandType.Slash,
|
|
57
|
+
ChatInputCommandInteraction<NoInfer<CTX>, NoInfer<ChildrenOptions>>
|
|
58
|
+
],
|
|
59
|
+
[
|
|
60
|
+
CommandType.Component,
|
|
61
|
+
MessageComponentInteraction<NoInfer<CTX>> & {
|
|
62
|
+
commandName: Command['name'];
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
CommandType.Prefix,
|
|
67
|
+
Message<NoInfer<CTX>>
|
|
68
|
+
]
|
|
69
|
+
]>, lang: Translator<false, Locale>, options: NoInfer<AO>, data: {
|
|
70
|
+
client: Discord.Client<true>;
|
|
71
|
+
option: CommandOption<CT, CTX, AO, ChildrenOptions, Discord.ApplicationCommandOptionType.SubcommandGroup>;
|
|
72
|
+
}): unknown;
|
|
73
|
+
}
|
|
74
|
+
export interface SubcommandConfig<CT extends readonly CommandType[], CTX extends AllContexts, AO = undefined, ChildrenOptions extends (readonly PrimitiveCommandOptionConfig<CT, CTX>[]) = (readonly PrimitiveCommandOptionConfig<CT, CTX>[])> extends BaseSubcommandConfig<CTX>, StrictOmit<LooseOmit<Discord.ApplicationCommandSubCommand, keyof BaseSubcommandConfig<CTX>>, 'options'> {
|
|
75
|
+
options?: ChildrenOptions;
|
|
76
|
+
run?(this: ExtendsMultiMatch<CommandType, CT, [
|
|
77
|
+
[
|
|
78
|
+
CommandType.Slash,
|
|
79
|
+
ChatInputCommandInteraction<NoInfer<CTX>, NoInfer<ChildrenOptions>>
|
|
80
|
+
],
|
|
81
|
+
[
|
|
82
|
+
CommandType.Component,
|
|
83
|
+
MessageComponentInteraction<NoInfer<CTX>> & {
|
|
84
|
+
commandName: Command['name'];
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
[
|
|
88
|
+
CommandType.Prefix,
|
|
89
|
+
Message<NoInfer<CTX>>
|
|
90
|
+
]
|
|
91
|
+
]>, lang: Translator<false, Locale>, options: NoInfer<AO>, data: {
|
|
92
|
+
client: Discord.Client<true>;
|
|
93
|
+
option: CommandOption<CT, CTX, AO, ChildrenOptions, Discord.ApplicationCommandOptionType.Subcommand>;
|
|
94
|
+
}): unknown;
|
|
95
|
+
}
|
|
96
|
+
export interface StringCommandOptionConfig<CT extends readonly CommandType[], CTX extends AllContexts> extends BasePrimitiveCommandOptionConfig<CT, CTX>, LooseOmit<Discord.ApplicationCommandStringOption, keyof BasePrimitiveCommandOptionConfig<CT, CTX>> {
|
|
97
|
+
}
|
|
98
|
+
export interface NumericCommandOptionConfig<CT extends readonly CommandType[], CTX extends AllContexts, T extends Discord.ApplicationCommandNumericOption['type'] = Discord.ApplicationCommandNumericOption['type']> extends BasePrimitiveCommandOptionConfig<CT, CTX>, LooseOmit<Discord.ApplicationCommandNumericOption, keyof BasePrimitiveCommandOptionConfig<CT, CTX>> {
|
|
99
|
+
type: T;
|
|
100
|
+
}
|
|
101
|
+
export interface ChannelCommandOptionConfig extends BaseOptionConfig, StrictOmit<Discord.ApplicationCommandChannelOption, keyof BaseOptionConfig> {
|
|
102
|
+
}
|
|
103
|
+
interface BooleanCommandOptionConfig extends BaseOptionConfig, StrictOmit<Discord.ApplicationCommandBooleanOption, keyof BaseOptionConfig> {
|
|
104
|
+
}
|
|
105
|
+
interface UserCommandOptionConfig extends BaseOptionConfig, StrictOmit<Discord.ApplicationCommandUserOption, keyof BaseOptionConfig> {
|
|
106
|
+
}
|
|
107
|
+
interface RoleCommandOptionConfig extends BaseOptionConfig, StrictOmit<Discord.ApplicationCommandRoleOption, keyof BaseOptionConfig> {
|
|
108
|
+
}
|
|
109
|
+
interface MentionableCommandOptionConfig extends BaseOptionConfig, StrictOmit<Discord.ApplicationCommandMentionableOption, keyof BaseOptionConfig> {
|
|
110
|
+
}
|
|
111
|
+
interface AttachmentCommandOptionConfig extends BaseOptionConfig, StrictOmit<Discord.ApplicationCommandAttachmentOption, keyof BaseOptionConfig> {
|
|
112
|
+
}
|
|
113
|
+
export type PrimitiveCommandOptionConfig<CT extends readonly CommandType[], CTX extends AllContexts> = StringCommandOptionConfig<CT, CTX> | NumericCommandOptionConfig<CT, CTX> | BooleanCommandOptionConfig | UserCommandOptionConfig | ChannelCommandOptionConfig | RoleCommandOptionConfig | MentionableCommandOptionConfig | AttachmentCommandOptionConfig;
|
|
114
|
+
export type CommandOptionConfig<CT extends readonly CommandType[], CTX extends AllContexts, AO = undefined, Options extends OptionsG<CT, CTX, AO> = OptionsG<CT, CTX, AO>> = StringCommandOptionConfig<CT, CTX> | NumericCommandOptionConfig<CT, CTX> | BooleanCommandOptionConfig | UserCommandOptionConfig | ChannelCommandOptionConfig | RoleCommandOptionConfig | MentionableCommandOptionConfig | AttachmentCommandOptionConfig | SubcommandConfig<CT, CTX, AO, Options> | SubcommandGroupConfig<CT, CTX, AO, Options>;
|
|
115
|
+
export type RunnableReturns = ['guildOnly'] | ['paramRequired', {
|
|
116
|
+
option: string;
|
|
117
|
+
description: string;
|
|
118
|
+
}] | ['invalidChannelType', string] | ['strictAutocompleteNoMatch', string] | ['strictAutocompleteNoMatchWValues', {
|
|
119
|
+
option: string;
|
|
120
|
+
availableOptions: string;
|
|
121
|
+
}];
|
|
122
|
+
type PrivateAutocompleteGeneratorOptions<CT extends readonly CommandType[], CTX extends AllContexts> = [
|
|
123
|
+
translator?: Translator<true, Locale>,
|
|
124
|
+
options?: autocompleteOptions<NoInfer<CT>, NoInfer<CTX>>
|
|
125
|
+
];
|
|
126
|
+
export type PublicAutocompleteGeneratorOptions<CT extends readonly CommandType[], CTX extends AllContexts> = [
|
|
127
|
+
interaction: ExtendsMultiMatch<CommandType, CT, [
|
|
128
|
+
[
|
|
129
|
+
CommandType.Slash,
|
|
130
|
+
AutocompleteInteraction<NoInfer<CTX>>
|
|
131
|
+
],
|
|
132
|
+
[
|
|
133
|
+
CommandType.Prefix,
|
|
134
|
+
Message<NoInfer<CTX>>
|
|
135
|
+
]
|
|
136
|
+
]>,
|
|
137
|
+
query: string,
|
|
138
|
+
locale: Locale
|
|
139
|
+
];
|
|
140
|
+
export type AutocompleteGeneratorOptions<CT extends readonly CommandType[], CTX extends AllContexts> = [
|
|
141
|
+
...PublicAutocompleteGeneratorOptions<NoInfer<CT>, NoInfer<CTX>>,
|
|
142
|
+
...PrivateAutocompleteGeneratorOptions<NoInfer<CT>, NoInfer<CTX>>
|
|
143
|
+
];
|
|
144
|
+
export {};
|
|
145
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/classes/commandOption/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/classes/commandOption/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAW7C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC,KAAK,CAAU,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as Discord from 'discord.js';
|
|
2
|
+
import type { Locale, Translator } from '@mephisto5558/i18n';
|
|
3
|
+
import type { AllContexts, AutocompleteInteraction, ChatInputCommandInteraction, CommandInitialized as Command, CommandInteraction, CooldownType, Message, MessageComponentInteraction, validTimeString } from '../index.ts';
|
|
4
|
+
import type { CommandOption } from './commandOption/index.ts';
|
|
5
|
+
export declare function equal(a: unknown, b: unknown): boolean;
|
|
6
|
+
export declare function cooldownConverter(cooldown: Partial<Record<CooldownType, validTimeString>>, k: keyof Command['cooldowns'], v: Command['cooldowns'][keyof Command['cooldowns']]): [keyof Command['cooldowns'], number];
|
|
7
|
+
export declare class CommandExecutionError extends Error {
|
|
8
|
+
readonly name = "CommandExecutionError";
|
|
9
|
+
interaction: CommandInteraction | AutocompleteInteraction;
|
|
10
|
+
translator: Translator<boolean, Locale>;
|
|
11
|
+
constructor(message: string | undefined, interaction: CommandExecutionError['interaction'], translator: CommandExecutionError['translator'], options?: ErrorOptions);
|
|
12
|
+
}
|
|
13
|
+
export declare class CommandValidationError<const CT extends readonly CommandType[], const CTX extends AllContexts> extends Error {
|
|
14
|
+
readonly name = "CommandValidationError";
|
|
15
|
+
readonly command?: Command<NoInfer<CT>, NoInfer<CTX>>;
|
|
16
|
+
readonly commandOption?: CommandOption<NoInfer<CT>, NoInfer<CTX>>;
|
|
17
|
+
constructor(message: string | undefined, command?: Command<NoInfer<CT>, NoInfer<CTX>>, commandOption?: CommandOption<NoInfer<CT>, NoInfer<CTX>>, options?: ErrorOptions);
|
|
18
|
+
}
|
|
19
|
+
export declare enum CommandType {
|
|
20
|
+
Slash = "slash",
|
|
21
|
+
Prefix = "prefix",
|
|
22
|
+
Component = "component"
|
|
23
|
+
}
|
|
24
|
+
export declare function resolveCommandType<I>(interaction: I): ExtendsMatch<I, [
|
|
25
|
+
[
|
|
26
|
+
Discord.ChatInputCommandInteraction | ChatInputCommandInteraction,
|
|
27
|
+
CommandType.Slash
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
Discord.Message | Message,
|
|
31
|
+
CommandType.Prefix
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
Discord.MessageComponentInteraction | MessageComponentInteraction,
|
|
35
|
+
CommandType.Component
|
|
36
|
+
]
|
|
37
|
+
]>;
|
|
38
|
+
export declare function isMessage(interaction: unknown): interaction is Message | Discord.Message;
|
|
39
|
+
export declare function isInteraction(interaction: unknown, commandType?: CommandType | CommandType[]): interaction is Discord.BaseInteraction;
|
|
40
|
+
export declare function isSlash(interaction: unknown): interaction is ChatInputCommandInteraction | Discord.ChatInputCommandInteraction;
|
|
41
|
+
export declare function isComponent(interaction: unknown): interaction is MessageComponentInteraction | Discord.MessageComponentInteraction;
|
|
42
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/classes/utils.ts"],"names":[],"mappings":"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"}
|