reciple 6.0.0-dev.9 → 6.0.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 (90) hide show
  1. package/README.md +1 -2
  2. package/dist/lib/bin.mjs +70 -0
  3. package/dist/lib/bin.mjs.map +1 -0
  4. package/dist/lib/esm.mjs +2 -0
  5. package/dist/lib/esm.mjs.map +1 -0
  6. package/dist/{cjs → lib}/index.js +17 -17
  7. package/dist/lib/index.js.map +1 -0
  8. package/dist/{cjs → lib}/reciple/classes/RecipleClient.js +33 -24
  9. package/dist/lib/reciple/classes/RecipleClient.js.map +1 -0
  10. package/dist/{cjs → lib}/reciple/classes/RecipleConfig.js +11 -10
  11. package/dist/lib/reciple/classes/RecipleConfig.js.map +1 -0
  12. package/dist/{cjs → lib}/reciple/classes/RecipleModule.js +58 -15
  13. package/dist/lib/reciple/classes/RecipleModule.js.map +1 -0
  14. package/dist/{cjs → lib}/reciple/classes/builders/MessageCommandBuilder.js +150 -82
  15. package/dist/lib/reciple/classes/builders/MessageCommandBuilder.js.map +1 -0
  16. package/dist/{cjs → lib}/reciple/classes/builders/MessageCommandOptionBuilder.js +55 -13
  17. package/dist/lib/reciple/classes/builders/MessageCommandOptionBuilder.js.map +1 -0
  18. package/dist/{cjs → lib}/reciple/classes/builders/SlashCommandBuilder.js +41 -10
  19. package/dist/lib/reciple/classes/builders/SlashCommandBuilder.js.map +1 -0
  20. package/dist/{cjs → lib}/reciple/classes/managers/ApplicationCommandManager.js +49 -6
  21. package/dist/lib/reciple/classes/managers/ApplicationCommandManager.js.map +1 -0
  22. package/dist/{cjs → lib}/reciple/classes/managers/CommandCooldownManager.js +1 -1
  23. package/dist/lib/reciple/classes/managers/CommandCooldownManager.js.map +1 -0
  24. package/dist/{cjs/reciple/classes/managers/ClientCommandManager.js → lib/reciple/classes/managers/CommandManager.js} +16 -13
  25. package/dist/lib/reciple/classes/managers/CommandManager.js.map +1 -0
  26. package/dist/{cjs → lib}/reciple/classes/managers/MessageCommandOptionManager.js +1 -0
  27. package/dist/lib/reciple/classes/managers/MessageCommandOptionManager.js.map +1 -0
  28. package/dist/{cjs/reciple/classes/managers/ClientModuleManager.js → lib/reciple/classes/managers/ModuleManager.js} +78 -64
  29. package/dist/lib/reciple/classes/managers/ModuleManager.js.map +1 -0
  30. package/dist/{cjs → lib}/reciple/flags.js +4 -3
  31. package/dist/lib/reciple/flags.js.map +1 -0
  32. package/dist/{cjs → lib}/reciple/permissions.js +1 -0
  33. package/dist/lib/reciple/permissions.js.map +1 -0
  34. package/dist/{cjs → lib}/reciple/types/builders.js +2 -1
  35. package/dist/lib/reciple/types/builders.js.map +1 -0
  36. package/dist/{cjs → lib}/reciple/types/commands.js +7 -6
  37. package/dist/lib/reciple/types/commands.js.map +1 -0
  38. package/dist/{cjs → lib}/reciple/types/paramOptions.js +1 -0
  39. package/dist/lib/reciple/types/paramOptions.js.map +1 -0
  40. package/dist/{cjs → lib}/reciple/util.js +13 -7
  41. package/dist/lib/reciple/util.js.map +1 -0
  42. package/dist/{cjs → lib}/reciple/version.js +1 -1
  43. package/dist/lib/reciple/version.js.map +1 -0
  44. package/dist/types/{bin.d.ts → bin.d.mts} +1 -0
  45. package/dist/types/bin.d.mts.map +1 -0
  46. package/dist/types/esm.d.mts +2 -0
  47. package/dist/types/esm.d.mts.map +1 -0
  48. package/dist/types/index.d.ts +17 -17
  49. package/dist/types/index.d.ts.map +1 -0
  50. package/dist/types/reciple/classes/RecipleClient.d.ts +22 -8
  51. package/dist/types/reciple/classes/RecipleClient.d.ts.map +1 -0
  52. package/dist/types/reciple/classes/RecipleConfig.d.ts +4 -2
  53. package/dist/types/reciple/classes/RecipleConfig.d.ts.map +1 -0
  54. package/dist/types/reciple/classes/RecipleModule.d.ts +37 -5
  55. package/dist/types/reciple/classes/RecipleModule.d.ts.map +1 -0
  56. package/dist/types/reciple/classes/builders/MessageCommandBuilder.d.ts +66 -26
  57. package/dist/types/reciple/classes/builders/MessageCommandBuilder.d.ts.map +1 -0
  58. package/dist/types/reciple/classes/builders/MessageCommandOptionBuilder.d.ts +18 -7
  59. package/dist/types/reciple/classes/builders/MessageCommandOptionBuilder.d.ts.map +1 -0
  60. package/dist/types/reciple/classes/builders/SlashCommandBuilder.d.ts +21 -10
  61. package/dist/types/reciple/classes/builders/SlashCommandBuilder.d.ts.map +1 -0
  62. package/dist/types/reciple/classes/managers/ApplicationCommandManager.d.ts +45 -6
  63. package/dist/types/reciple/classes/managers/ApplicationCommandManager.d.ts.map +1 -0
  64. package/dist/types/reciple/classes/managers/CommandCooldownManager.d.ts +1 -0
  65. package/dist/types/reciple/classes/managers/CommandCooldownManager.d.ts.map +1 -0
  66. package/dist/types/reciple/classes/managers/CommandManager.d.ts +35 -0
  67. package/dist/types/reciple/classes/managers/CommandManager.d.ts.map +1 -0
  68. package/dist/types/reciple/classes/managers/MessageCommandOptionManager.d.ts +2 -1
  69. package/dist/types/reciple/classes/managers/MessageCommandOptionManager.d.ts.map +1 -0
  70. package/dist/types/reciple/classes/managers/ModuleManager.d.ts +50 -0
  71. package/dist/types/reciple/classes/managers/ModuleManager.d.ts.map +1 -0
  72. package/dist/types/reciple/flags.d.ts +2 -1
  73. package/dist/types/reciple/flags.d.ts.map +1 -0
  74. package/dist/types/reciple/permissions.d.ts +3 -6
  75. package/dist/types/reciple/permissions.d.ts.map +1 -0
  76. package/dist/types/reciple/types/builders.d.ts +25 -16
  77. package/dist/types/reciple/types/builders.d.ts.map +1 -0
  78. package/dist/types/reciple/types/commands.d.ts +16 -15
  79. package/dist/types/reciple/types/commands.d.ts.map +1 -0
  80. package/dist/types/reciple/types/paramOptions.d.ts +80 -3
  81. package/dist/types/reciple/types/paramOptions.d.ts.map +1 -0
  82. package/dist/types/reciple/util.d.ts +9 -2
  83. package/dist/types/reciple/util.d.ts.map +1 -0
  84. package/dist/types/reciple/version.d.ts +1 -0
  85. package/dist/types/reciple/version.d.ts.map +1 -0
  86. package/package.json +44 -35
  87. package/resource/reciple.yml +25 -22
  88. package/dist/cjs/bin.js +0 -54
  89. package/dist/types/reciple/classes/managers/ClientCommandManager.d.ts +0 -37
  90. package/dist/types/reciple/classes/managers/ClientModuleManager.d.ts +0 -19
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateMessageCommandOptions = exports.MessageCommandBuilder = void 0;
3
+ exports.MessageCommandBuilder = void 0;
4
4
  const builders_1 = require("../../types/builders");
5
5
  const discord_js_1 = require("discord.js");
6
6
  const MessageCommandOptionManager_1 = require("../managers/MessageCommandOptionManager");
@@ -9,19 +9,91 @@ const MessageCommandOptionBuilder_1 = require("./MessageCommandOptionBuilder");
9
9
  * Reciple builder for message command
10
10
  */
11
11
  class MessageCommandBuilder {
12
+ get name() {
13
+ return this._name;
14
+ }
15
+ get description() {
16
+ return this._description;
17
+ }
18
+ get cooldown() {
19
+ return this._cooldown;
20
+ }
21
+ get aliases() {
22
+ return this._aliases;
23
+ }
24
+ get validateOptions() {
25
+ return this._validateOptions;
26
+ }
27
+ get options() {
28
+ return this._options;
29
+ }
30
+ get requiredBotPermissions() {
31
+ return this._requiredBotPermissions;
32
+ }
33
+ get requiredMemberPermissions() {
34
+ return this._requiredMemberPermissions;
35
+ }
36
+ get allowExecuteInDM() {
37
+ return this._allowExecuteInDM;
38
+ }
39
+ get allowExecuteByBots() {
40
+ return this._allowExecuteByBots;
41
+ }
42
+ get halt() {
43
+ return this._halt;
44
+ }
45
+ get execute() {
46
+ return this._execute;
47
+ }
48
+ set name(name) {
49
+ this.setName(name);
50
+ }
51
+ set description(description) {
52
+ this.setDescription(description);
53
+ }
54
+ set cooldown(cooldown) {
55
+ this.setCooldown(cooldown);
56
+ }
57
+ set aliases(aliases) {
58
+ this.addAliases(aliases);
59
+ }
60
+ set validateOptions(validate) {
61
+ this.setValidateOptions(validate);
62
+ }
63
+ set options(options) {
64
+ this.setOptions(options);
65
+ }
66
+ set requiredBotPermissions(permissions) {
67
+ this.setRequiredBotPermissions(permissions);
68
+ }
69
+ set requiredMemberPermissions(permissions) {
70
+ this.setRequiredMemberPermissions(permissions);
71
+ }
72
+ set allowExecuteInDM(allow) {
73
+ this.setAllowExecuteInDM(allow);
74
+ }
75
+ set allowExecuteByBots(allow) {
76
+ this.setAllowExecuteByBots(allow);
77
+ }
78
+ set halt(halt) {
79
+ this.setHalt(halt);
80
+ }
81
+ set execute(execute) {
82
+ this.setExecute(execute);
83
+ }
12
84
  constructor(data) {
13
85
  this.type = builders_1.CommandType.MessageCommand;
14
- this.name = '';
15
- this.description = '';
16
- this.cooldown = 0;
17
- this.aliases = [];
18
- this.validateOptions = false;
19
- this.options = [];
20
- this.requiredBotPermissions = [];
21
- this.requiredMemberPermissions = [];
22
- this.allowExecuteInDM = true;
23
- this.allowExecuteByBots = false;
24
- this.execute = () => {
86
+ this._name = '';
87
+ this._description = '';
88
+ this._cooldown = 0;
89
+ this._aliases = [];
90
+ this._validateOptions = false;
91
+ this._options = [];
92
+ this._requiredBotPermissions = [];
93
+ this._requiredMemberPermissions = [];
94
+ this._allowExecuteInDM = true;
95
+ this._allowExecuteByBots = false;
96
+ this._execute = () => {
25
97
  /* Execute */
26
98
  };
27
99
  if (data?.name !== undefined)
@@ -56,9 +128,9 @@ class MessageCommandBuilder {
56
128
  * @param name Command name
57
129
  */
58
130
  setName(name) {
59
- if (!name || typeof name !== 'string' || !name.match(/^[\w-]{1,32}$/))
131
+ if ((0, discord_js_1.isValidationEnabled)() && (!name || typeof name !== 'string' || !name.match(/^[\w-]{1,32}$/)))
60
132
  throw new TypeError('name must be a string and match the regex /^[\\w-]{1,32}$/');
61
- this.name = name;
133
+ this._name = name;
62
134
  return this;
63
135
  }
64
136
  /**
@@ -66,9 +138,9 @@ class MessageCommandBuilder {
66
138
  * @param description Command description
67
139
  */
68
140
  setDescription(description) {
69
- if (!description || typeof description !== 'string')
141
+ if ((0, discord_js_1.isValidationEnabled)() && (!description || typeof description !== 'string'))
70
142
  throw new TypeError('description must be a string.');
71
- this.description = description;
143
+ this._description = description;
72
144
  return this;
73
145
  }
74
146
  /**
@@ -83,17 +155,23 @@ class MessageCommandBuilder {
83
155
  throw new TypeError('aliases must be strings and should not contain whitespaces');
84
156
  if (this.name && aliases.some(a => a == this.name))
85
157
  throw new TypeError('alias cannot have same name to its real command name');
86
- this.aliases = [...new Set(aliases.map(s => s.toLowerCase()))];
158
+ this._aliases = [...new Set(aliases.map(s => s.toLowerCase()))];
87
159
  return this;
88
160
  }
161
+ /**
162
+ * Replace aliases from command builder
163
+ * @param aliases Command aliases
164
+ */
165
+ setAliases(...aliases) {
166
+ this._aliases = [];
167
+ return this.addAliases(...aliases);
168
+ }
89
169
  /**
90
170
  * Set if command can be executed in dms
91
171
  * @param allowExecuteInDM `true` if the command can execute in DMs
92
172
  */
93
173
  setAllowExecuteInDM(allowExecuteInDM) {
94
- if (typeof allowExecuteInDM !== 'boolean')
95
- throw new TypeError('allowExecuteInDM must be a boolean.');
96
- this.allowExecuteInDM = allowExecuteInDM;
174
+ this._allowExecuteInDM = !!allowExecuteInDM;
97
175
  return this;
98
176
  }
99
177
  /**
@@ -101,56 +179,69 @@ class MessageCommandBuilder {
101
179
  * @param allowExecuteByBots `true` if the command can be executed by bots
102
180
  */
103
181
  setAllowExecuteByBots(allowExecuteByBots) {
104
- if (typeof allowExecuteByBots !== 'boolean')
105
- throw new TypeError('allowExecuteByBots must be a boolean.');
106
- this.allowExecuteByBots = allowExecuteByBots;
182
+ this._allowExecuteByBots = !!allowExecuteByBots;
107
183
  return this;
108
184
  }
109
185
  /**
110
- * Add option to the command
111
- * @param option Message option builder
186
+ * Add new command options
187
+ * @param options Message options
112
188
  */
113
- addOption(option) {
114
- if (!option)
115
- throw new TypeError('option must be a MessageOption.');
116
- option = typeof option === 'function' ? option(new MessageCommandOptionBuilder_1.MessageCommandOptionBuilder()) : option;
117
- if (this.options.find(o => o.name === option.name))
118
- throw new TypeError('option with name "' + option.name + '" already exists.');
119
- if (this.options.length > 0 && !this.options[this.options.length - 1 < 0 ? 0 : this.options.length - 1].required && option.required)
120
- throw new TypeError('All required options must be before optional options.');
121
- this.options.push(option);
189
+ addOptions(...options) {
190
+ for (const optionResolvable of (0, discord_js_1.normalizeArray)(options)) {
191
+ const option = typeof optionResolvable === 'function' ? optionResolvable(new MessageCommandOptionBuilder_1.MessageCommandOptionBuilder()) : optionResolvable instanceof MessageCommandOptionBuilder_1.MessageCommandOptionBuilder ? optionResolvable : MessageCommandOptionBuilder_1.MessageCommandOptionBuilder.resolveMessageCommandOption(optionResolvable);
192
+ if ((0, discord_js_1.isValidationEnabled)()) {
193
+ if (this.options.find(o => o.name === option.name))
194
+ throw new TypeError('option with name "' + option.name + '" already exists.');
195
+ if (this.options.length > 0 && !this.options[this.options.length - 1 < 0 ? 0 : this.options.length - 1].required && option.required)
196
+ throw new TypeError('All required options must be before optional options.');
197
+ }
198
+ this._options.push(option);
199
+ }
122
200
  return this;
123
201
  }
202
+ /**
203
+ * Add new command option
204
+ * @param option Message option
205
+ */
206
+ addOption(option) {
207
+ return this.addOptions(option);
208
+ }
209
+ /**
210
+ * Set options from command
211
+ * @params options Message options
212
+ */
213
+ setOptions(...options) {
214
+ this._options = [];
215
+ return this.addOptions(...options);
216
+ }
124
217
  /**
125
218
  * Validate options before executing
126
219
  * @param validateOptions `true` if the command options needs to be validated before executing
127
220
  */
128
221
  setValidateOptions(validateOptions) {
129
- if (typeof validateOptions !== 'boolean')
130
- throw new TypeError('validateOptions must be a boolean.');
131
- this.validateOptions = validateOptions;
222
+ this._validateOptions = !!validateOptions;
132
223
  return this;
133
224
  }
134
225
  setCooldown(cooldown) {
135
- this.cooldown = cooldown;
226
+ this._cooldown = cooldown;
136
227
  return this;
137
228
  }
138
229
  setRequiredBotPermissions(...permissions) {
139
- this.requiredBotPermissions = (0, discord_js_1.normalizeArray)(permissions);
230
+ this._requiredBotPermissions = (0, discord_js_1.normalizeArray)(permissions);
140
231
  return this;
141
232
  }
142
233
  setRequiredMemberPermissions(...permissions) {
143
- this.requiredMemberPermissions = (0, discord_js_1.normalizeArray)(permissions);
234
+ this._requiredMemberPermissions = (0, discord_js_1.normalizeArray)(permissions);
144
235
  return this;
145
236
  }
146
237
  setHalt(halt) {
147
- this.halt = halt ?? undefined;
238
+ this._halt = halt || undefined;
148
239
  return this;
149
240
  }
150
241
  setExecute(execute) {
151
- if (!execute || typeof execute !== 'function')
242
+ if ((0, discord_js_1.isValidationEnabled)() && (!execute || typeof execute !== 'function'))
152
243
  throw new TypeError('execute must be a function.');
153
- this.execute = execute;
244
+ this._execute = execute;
154
245
  return this;
155
246
  }
156
247
  setMetadata(metadata) {
@@ -175,7 +266,7 @@ class MessageCommandBuilder {
175
266
  allowExecuteByBots: this.allowExecuteByBots,
176
267
  allowExecuteInDM: this.allowExecuteInDM,
177
268
  validateOptions: this.validateOptions,
178
- options: this.options.map(o => o.toJSON()),
269
+ options: this.options.map(o => (o instanceof MessageCommandOptionBuilder_1.MessageCommandOptionBuilder ? o.toJSON() : o)),
179
270
  };
180
271
  }
181
272
  /**
@@ -199,44 +290,21 @@ class MessageCommandBuilder {
199
290
  static isMessageCommandExecuteData(executeData) {
200
291
  return executeData.builder !== undefined && this.isMessageCommandBuilder(executeData.builder);
201
292
  }
202
- }
203
- exports.MessageCommandBuilder = MessageCommandBuilder;
204
- /**
205
- * Validate message command options
206
- * @param builder Command builder
207
- * @param options Parsed command args
208
- */
209
- async function validateMessageCommandOptions(builder, options) {
210
- const args = options.args || [];
211
- const required = builder.options.filter(o => o.required);
212
- const optional = builder.options.filter(o => !o.required);
213
- const allOptions = [...required, ...optional];
214
- const result = [];
215
- let i = 0;
216
- for (const option of allOptions) {
217
- const arg = args[i];
218
- const value = {
219
- name: option.name,
220
- value: arg ?? undefined,
221
- required: option.required,
222
- invalid: false,
223
- missing: false,
224
- };
225
- if (arg == undefined && option.required) {
226
- value.missing = true;
227
- result.push(value);
228
- continue;
229
- }
230
- if (arg == undefined && !option.required) {
231
- result.push(value);
232
- continue;
293
+ /**
294
+ * Validate message command options
295
+ * @param builder Command builder
296
+ * @param options Parsed command args
297
+ */
298
+ static async validateOptions(builder, commandArgs) {
299
+ const args = Array.isArray(commandArgs) ? commandArgs : commandArgs.args || [];
300
+ const allOptions = [...(builder.options ?? []).filter(o => o.required), ...(builder.options ?? []).filter(o => !o.required)];
301
+ const result = [];
302
+ for (let i = 0; i < allOptions.length; i++) {
303
+ const arg = args[i];
304
+ result.push(await MessageCommandOptionBuilder_1.MessageCommandOptionBuilder.validateOption(allOptions[i], arg));
233
305
  }
234
- const validate = option.validator ? await Promise.resolve(option.validator(arg)) : true;
235
- if (!validate)
236
- value.invalid = true;
237
- result.push(value);
238
- i++;
306
+ return new MessageCommandOptionManager_1.MessageCommandOptionManager(...result);
239
307
  }
240
- return new MessageCommandOptionManager_1.MessageCommandOptionManager(...result);
241
308
  }
242
- exports.validateMessageCommandOptions = validateMessageCommandOptions;
309
+ exports.MessageCommandBuilder = MessageCommandBuilder;
310
+ //# sourceMappingURL=MessageCommandBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageCommandBuilder.js","sourceRoot":"","sources":["../../../../../src/reciple/classes/builders/MessageCommandBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MessageCommandOptionBuilder = void 0;
4
+ const discord_js_1 = require("discord.js");
4
5
  /**
5
6
  * Option builder for MessageCommandBuilder
6
7
  */
7
8
  class MessageCommandOptionBuilder {
9
+ get name() {
10
+ return this._name;
11
+ }
12
+ get description() {
13
+ return this._description;
14
+ }
15
+ get required() {
16
+ return this._required;
17
+ }
18
+ get validator() {
19
+ return this._validator;
20
+ }
21
+ set name(name) {
22
+ this.setName(name);
23
+ }
24
+ set description(description) {
25
+ this.setDescription(description);
26
+ }
27
+ set required(required) {
28
+ this.setRequired(required);
29
+ }
30
+ set validator(validator) {
31
+ this.setValidator(validator);
32
+ }
8
33
  constructor(data) {
9
- this.name = '';
10
- this.description = '';
11
- this.required = false;
12
- this.validator = () => true;
34
+ this._name = '';
35
+ this._description = '';
36
+ this._required = false;
13
37
  if (data?.name !== undefined)
14
38
  this.setName(data.name);
15
39
  if (data?.description !== undefined)
@@ -24,9 +48,9 @@ class MessageCommandOptionBuilder {
24
48
  * @param name Option name
25
49
  */
26
50
  setName(name) {
27
- if (typeof name !== 'string' || !name.match(/^[\w-]{1,32}$/))
51
+ if ((0, discord_js_1.isValidationEnabled)() && (typeof name !== 'string' || !name.match(/^[\w-]{1,32}$/)))
28
52
  throw new TypeError('name must be a string and match the regex /^[\\w-]{1,32}$/.');
29
- this.name = name;
53
+ this._name = name;
30
54
  return this;
31
55
  }
32
56
  /**
@@ -34,9 +58,9 @@ class MessageCommandOptionBuilder {
34
58
  * @param description Option description
35
59
  */
36
60
  setDescription(description) {
37
- if (!description || typeof description !== 'string')
61
+ if ((0, discord_js_1.isValidationEnabled)() && (!description || typeof description !== 'string'))
38
62
  throw new TypeError('description must be a string.');
39
- this.description = description;
63
+ this._description = description;
40
64
  return this;
41
65
  }
42
66
  /**
@@ -44,9 +68,7 @@ class MessageCommandOptionBuilder {
44
68
  * @param required `true` if this option is required
45
69
  */
46
70
  setRequired(required) {
47
- if (typeof required !== 'boolean')
48
- throw new TypeError('required must be a boolean.');
49
- this.required = required;
71
+ this._required = !!required;
50
72
  return this;
51
73
  }
52
74
  /**
@@ -54,9 +76,9 @@ class MessageCommandOptionBuilder {
54
76
  * @param validator Custom function to validate value given for this option
55
77
  */
56
78
  setValidator(validator) {
57
- if (!validator || typeof validator !== 'function')
79
+ if ((0, discord_js_1.isValidationEnabled)() && validator !== undefined && typeof validator !== 'function')
58
80
  throw new TypeError('validator must be a function.');
59
- this.validator = validator;
81
+ this._validator = validator;
60
82
  return this;
61
83
  }
62
84
  toJSON() {
@@ -81,5 +103,25 @@ class MessageCommandOptionBuilder {
81
103
  static isMessageCommandOption(builder) {
82
104
  return builder instanceof MessageCommandOptionBuilder;
83
105
  }
106
+ static async validateOption(option, value) {
107
+ const validatedOption = {
108
+ name: option.name,
109
+ value,
110
+ required: !!option.required,
111
+ invalid: false,
112
+ missing: false,
113
+ };
114
+ if (value == undefined && option.required) {
115
+ validatedOption.missing = true;
116
+ return validatedOption;
117
+ }
118
+ if (value == undefined && !option.required)
119
+ return validatedOption;
120
+ const validate = option.validator !== undefined ? await Promise.resolve(option.validator(value ?? '')) : true;
121
+ if (!validate)
122
+ validatedOption.invalid = true;
123
+ return validatedOption;
124
+ }
84
125
  }
85
126
  exports.MessageCommandOptionBuilder = MessageCommandOptionBuilder;
127
+ //# sourceMappingURL=MessageCommandOptionBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageCommandOptionBuilder.js","sourceRoot":"","sources":["../../../../../src/reciple/classes/builders/MessageCommandOptionBuilder.ts"],"names":[],"mappings":"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"}
@@ -8,13 +8,43 @@ const discord_js_1 = require("discord.js");
8
8
  * Reciple builder for slash command
9
9
  */
10
10
  class SlashCommandBuilder extends discord_js_1.SlashCommandBuilder {
11
+ get cooldown() {
12
+ return this._cooldown;
13
+ }
14
+ get requiredBotPermissions() {
15
+ return this._requiredBotPermissions;
16
+ }
17
+ get requiredMemberPermissions() {
18
+ return this._requiredMemberPermissions;
19
+ }
20
+ get halt() {
21
+ return this._halt;
22
+ }
23
+ get execute() {
24
+ return this._execute;
25
+ }
26
+ set cooldown(cooldown) {
27
+ this.setCooldown(cooldown);
28
+ }
29
+ set requiredBotPermissions(permissions) {
30
+ this.setRequiredBotPermissions(permissions);
31
+ }
32
+ set requiredMemberPermissions(permissions) {
33
+ this.setRequiredMemberPermissions(permissions);
34
+ }
35
+ set halt(halt) {
36
+ this.setHalt(halt);
37
+ }
38
+ set execute(execute) {
39
+ this.setExecute(execute);
40
+ }
11
41
  constructor(data) {
12
42
  super();
13
43
  this.type = builders_1.CommandType.SlashCommand;
14
- this.cooldown = 0;
15
- this.requiredBotPermissions = [];
16
- this.requiredMemberPermissions = [];
17
- this.execute = () => {
44
+ this._cooldown = 0;
45
+ this._requiredBotPermissions = [];
46
+ this._requiredMemberPermissions = [];
47
+ this._execute = () => {
18
48
  /* Execute */
19
49
  };
20
50
  // TODO: WTH
@@ -51,26 +81,26 @@ class SlashCommandBuilder extends discord_js_1.SlashCommandBuilder {
51
81
  }
52
82
  }
53
83
  setCooldown(cooldown) {
54
- this.cooldown = cooldown;
84
+ this._cooldown = cooldown;
55
85
  return this;
56
86
  }
57
87
  setRequiredBotPermissions(...permissions) {
58
- this.requiredBotPermissions = (0, discord_js_1.normalizeArray)(permissions);
88
+ this._requiredBotPermissions = (0, discord_js_1.normalizeArray)(permissions);
59
89
  return this;
60
90
  }
61
91
  setRequiredMemberPermissions(...permissions) {
62
- this.requiredMemberPermissions = (0, discord_js_1.normalizeArray)(permissions);
92
+ this._requiredMemberPermissions = (0, discord_js_1.normalizeArray)(permissions);
63
93
  this.setDefaultMemberPermissions(this.requiredMemberPermissions.length ? new discord_js_1.PermissionsBitField(this.requiredMemberPermissions).bitfield : undefined);
64
94
  return this;
65
95
  }
66
96
  setHalt(halt) {
67
- this.halt = halt ?? undefined;
97
+ this._halt = halt || undefined;
68
98
  return this;
69
99
  }
70
100
  setExecute(execute) {
71
- if (!execute || typeof execute !== 'function')
101
+ if ((0, discord_js_1.isValidationEnabled)() && (!execute || typeof execute !== 'function'))
72
102
  throw new Error('execute must be a function.');
73
- this.execute = execute;
103
+ this._execute = execute;
74
104
  return this;
75
105
  }
76
106
  setMetadata(metadata) {
@@ -214,3 +244,4 @@ class SlashCommandBuilder extends discord_js_1.SlashCommandBuilder {
214
244
  }
215
245
  }
216
246
  exports.SlashCommandBuilder = SlashCommandBuilder;
247
+ //# sourceMappingURL=SlashCommandBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlashCommandBuilder.js","sourceRoot":"","sources":["../../../../../src/reciple/classes/builders/SlashCommandBuilder.ts"],"names":[],"mappings":"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"}