reciple 6.0.0-dev.8 → 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 (93) 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 +40 -31
  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 +63 -20
  13. package/dist/lib/reciple/classes/RecipleModule.js.map +1 -0
  14. package/dist/lib/reciple/classes/builders/MessageCommandBuilder.js +310 -0
  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 +43 -15
  19. package/dist/lib/reciple/classes/builders/SlashCommandBuilder.js.map +1 -0
  20. package/dist/{cjs → lib}/reciple/classes/managers/ApplicationCommandManager.js +51 -10
  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} +18 -16
  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/lib/reciple/types/builders.js +12 -0
  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 +14 -8
  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 +67 -27
  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 +23 -12
  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 +3 -2
  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 +29 -20
  77. package/dist/types/reciple/types/builders.d.ts.map +1 -0
  78. package/dist/types/reciple/types/commands.d.ts +19 -18
  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 +47 -37
  87. package/resource/reciple.yml +25 -22
  88. package/dist/cjs/bin.js +0 -52
  89. package/dist/cjs/reciple/classes/builders/MessageCommandBuilder.js +0 -242
  90. package/dist/cjs/reciple/types/builders.js +0 -11
  91. package/dist/types/reciple/classes/managers/ClientCommandManager.d.ts +0 -37
  92. package/dist/types/reciple/classes/managers/ClientModuleManager.d.ts +0 -19
  93. package/docs/README.md +0 -1
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageCommandBuilder = void 0;
4
+ const builders_1 = require("../../types/builders");
5
+ const discord_js_1 = require("discord.js");
6
+ const MessageCommandOptionManager_1 = require("../managers/MessageCommandOptionManager");
7
+ const MessageCommandOptionBuilder_1 = require("./MessageCommandOptionBuilder");
8
+ /**
9
+ * Reciple builder for message command
10
+ */
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
+ }
84
+ constructor(data) {
85
+ this.type = builders_1.CommandType.MessageCommand;
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 = () => {
97
+ /* Execute */
98
+ };
99
+ if (data?.name !== undefined)
100
+ this.setName(data.name);
101
+ if (data?.description !== undefined)
102
+ this.setDescription(data.description);
103
+ if (data?.aliases !== undefined)
104
+ this.addAliases(data.aliases);
105
+ if (data?.cooldown !== undefined)
106
+ this.setCooldown(Number(data?.cooldown));
107
+ if (data?.requiredBotPermissions !== undefined)
108
+ this.setRequiredBotPermissions(data.requiredBotPermissions);
109
+ if (data?.requiredMemberPermissions !== undefined)
110
+ this.setRequiredMemberPermissions(data.requiredMemberPermissions);
111
+ if (data?.halt !== undefined)
112
+ this.setHalt(data.halt);
113
+ if (data?.execute !== undefined)
114
+ this.setExecute(data.execute);
115
+ if (data?.metadata !== undefined)
116
+ this.setMetadata(data.metadata);
117
+ if (data?.allowExecuteByBots !== undefined)
118
+ this.setAllowExecuteByBots(true);
119
+ if (data?.allowExecuteInDM !== undefined)
120
+ this.setAllowExecuteInDM(true);
121
+ if (data?.validateOptions !== undefined)
122
+ this.setValidateOptions(true);
123
+ if (data?.options !== undefined)
124
+ this.options = data.options.map(o => (o instanceof MessageCommandOptionBuilder_1.MessageCommandOptionBuilder ? o : new MessageCommandOptionBuilder_1.MessageCommandOptionBuilder(o)));
125
+ }
126
+ /**
127
+ * Sets the command name
128
+ * @param name Command name
129
+ */
130
+ setName(name) {
131
+ if ((0, discord_js_1.isValidationEnabled)() && (!name || typeof name !== 'string' || !name.match(/^[\w-]{1,32}$/)))
132
+ throw new TypeError('name must be a string and match the regex /^[\\w-]{1,32}$/');
133
+ this._name = name;
134
+ return this;
135
+ }
136
+ /**
137
+ * Sets the command description
138
+ * @param description Command description
139
+ */
140
+ setDescription(description) {
141
+ if ((0, discord_js_1.isValidationEnabled)() && (!description || typeof description !== 'string'))
142
+ throw new TypeError('description must be a string.');
143
+ this._description = description;
144
+ return this;
145
+ }
146
+ /**
147
+ * Add aliases to the command
148
+ * @param aliases Command aliases
149
+ */
150
+ addAliases(...aliases) {
151
+ aliases = (0, discord_js_1.normalizeArray)(aliases);
152
+ if (!aliases.length)
153
+ throw new TypeError('Provide atleast one alias');
154
+ if (aliases.some(a => !a || typeof a !== 'string' || a.match(/^\s+$/)))
155
+ throw new TypeError('aliases must be strings and should not contain whitespaces');
156
+ if (this.name && aliases.some(a => a == this.name))
157
+ throw new TypeError('alias cannot have same name to its real command name');
158
+ this._aliases = [...new Set(aliases.map(s => s.toLowerCase()))];
159
+ return this;
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
+ }
169
+ /**
170
+ * Set if command can be executed in dms
171
+ * @param allowExecuteInDM `true` if the command can execute in DMs
172
+ */
173
+ setAllowExecuteInDM(allowExecuteInDM) {
174
+ this._allowExecuteInDM = !!allowExecuteInDM;
175
+ return this;
176
+ }
177
+ /**
178
+ * Allow command to be executed by bots
179
+ * @param allowExecuteByBots `true` if the command can be executed by bots
180
+ */
181
+ setAllowExecuteByBots(allowExecuteByBots) {
182
+ this._allowExecuteByBots = !!allowExecuteByBots;
183
+ return this;
184
+ }
185
+ /**
186
+ * Add new command options
187
+ * @param options Message options
188
+ */
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
+ }
200
+ return this;
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
+ }
217
+ /**
218
+ * Validate options before executing
219
+ * @param validateOptions `true` if the command options needs to be validated before executing
220
+ */
221
+ setValidateOptions(validateOptions) {
222
+ this._validateOptions = !!validateOptions;
223
+ return this;
224
+ }
225
+ setCooldown(cooldown) {
226
+ this._cooldown = cooldown;
227
+ return this;
228
+ }
229
+ setRequiredBotPermissions(...permissions) {
230
+ this._requiredBotPermissions = (0, discord_js_1.normalizeArray)(permissions);
231
+ return this;
232
+ }
233
+ setRequiredMemberPermissions(...permissions) {
234
+ this._requiredMemberPermissions = (0, discord_js_1.normalizeArray)(permissions);
235
+ return this;
236
+ }
237
+ setHalt(halt) {
238
+ this._halt = halt || undefined;
239
+ return this;
240
+ }
241
+ setExecute(execute) {
242
+ if ((0, discord_js_1.isValidationEnabled)() && (!execute || typeof execute !== 'function'))
243
+ throw new TypeError('execute must be a function.');
244
+ this._execute = execute;
245
+ return this;
246
+ }
247
+ setMetadata(metadata) {
248
+ this.metadata = metadata;
249
+ return this;
250
+ }
251
+ /**
252
+ * Returns JSON object of this builder
253
+ */
254
+ toJSON() {
255
+ return {
256
+ type: this.type,
257
+ name: this.name,
258
+ description: this.description,
259
+ aliases: this.aliases,
260
+ cooldown: this.cooldown,
261
+ requiredBotPermissions: this.requiredBotPermissions,
262
+ requiredMemberPermissions: this.requiredMemberPermissions,
263
+ halt: this.halt,
264
+ execute: this.execute,
265
+ metadata: this.metadata,
266
+ allowExecuteByBots: this.allowExecuteByBots,
267
+ allowExecuteInDM: this.allowExecuteInDM,
268
+ validateOptions: this.validateOptions,
269
+ options: this.options.map(o => (o instanceof MessageCommandOptionBuilder_1.MessageCommandOptionBuilder ? o.toJSON() : o)),
270
+ };
271
+ }
272
+ /**
273
+ * Resolve message command data/builder
274
+ * @param commandData Command data to resolve
275
+ */
276
+ static resolveMessageCommand(commandData) {
277
+ return this.isMessageCommandBuilder(commandData) ? commandData : new MessageCommandBuilder(commandData);
278
+ }
279
+ /**
280
+ * Is a message command builder
281
+ * @param builder data to check
282
+ */
283
+ static isMessageCommandBuilder(builder) {
284
+ return builder instanceof MessageCommandBuilder;
285
+ }
286
+ /**
287
+ * Is a message command execute data
288
+ * @param executeData data to check
289
+ */
290
+ static isMessageCommandExecuteData(executeData) {
291
+ return executeData.builder !== undefined && this.isMessageCommandBuilder(executeData.builder);
292
+ }
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));
305
+ }
306
+ return new MessageCommandOptionManager_1.MessageCommandOptionManager(...result);
307
+ }
308
+ }
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
- this.type = builders_1.CommandBuilderType.SlashCommand;
14
- this.cooldown = 0;
15
- this.requiredBotPermissions = [];
16
- this.requiredMemberPermissions = [];
17
- this.execute = () => {
43
+ this.type = builders_1.CommandType.SlashCommand;
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) {
@@ -182,10 +212,7 @@ class SlashCommandBuilder extends discord_js_1.SlashCommandBuilder {
182
212
  default:
183
213
  throw new TypeError('Unknown option data');
184
214
  }
185
- if (!(builder instanceof discord_js_1.SlashCommandSubcommandBuilder) &&
186
- !(builder instanceof discord_js_1.SlashCommandSubcommandGroupBuilder) &&
187
- option.type !== discord_js_1.ApplicationCommandOptionType.Subcommand &&
188
- option.type !== discord_js_1.ApplicationCommandOptionType.SubcommandGroup) {
215
+ if (!(builder instanceof discord_js_1.SlashCommandSubcommandBuilder) && !(builder instanceof discord_js_1.SlashCommandSubcommandGroupBuilder) && option.type !== discord_js_1.ApplicationCommandOptionType.Subcommand && option.type !== discord_js_1.ApplicationCommandOptionType.SubcommandGroup) {
189
216
  builder.setRequired(option.required ?? false);
190
217
  }
191
218
  return builder
@@ -217,3 +244,4 @@ class SlashCommandBuilder extends discord_js_1.SlashCommandBuilder {
217
244
  }
218
245
  }
219
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":";;;AAAA,mDAA4Q;AAE5Q,qCAAqC;AAErC,2CAqBoB;AAmEpB;;GAEG;AACH,MAAa,mBAAiC,SAAQ,gCAA4B;IAW9E,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IACD,IAAI,yBAAyB;QACzB,OAAO,IAAI,CAAC,0BAA0B,CAAC;IAC3C,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,CAAC,QAA+B;QACxC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,sBAAsB,CAAC,WAAgD;QACvE,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,yBAAyB,CAAC,WAAmD;QAC7E,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,IAAI,CAAC,IAAuB;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,OAA6B;QACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,IAAiD;QACzD,KAAK,EAAE,CAAC;QA3CI,SAAI,GAAG,sBAAW,CAAC,YAAY,CAAC;QACtC,cAAS,GAAW,CAAC,CAAC;QACtB,4BAAuB,GAA2B,EAAE,CAAC;QACrD,+BAA0B,GAA2B,EAAE,CAAC;QAExD,aAAQ,GAAmC,GAAG,EAAE;YACtD,aAAa;QACjB,CAAC,CAAC;QAsCE,YAAY;QAEZ,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,IAAI,EAAE,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,IAAI,EAAE,sBAAsB,KAAK,SAAS;YAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5G,IAAI,IAAI,EAAE,yBAAyB,KAAK,SAAS;YAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACrH,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,IAAI,EAAE,iBAAiB,KAAK,SAAS;YAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7F,IAAI,IAAI,EAAE,wBAAwB,KAAK,SAAS;YAAE,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAClH,IAAI,IAAI,EAAE,wBAAwB,KAAK,SAAS;YAAE,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAClH,IAAI,IAAI,EAAE,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,IAAI,EAAE,iBAAiB,KAAK,SAAS;YAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,IAAI,EAAE,OAAO,EAAE;YACf,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC/B,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAA,cAAO,EAA+B,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAmC,CAAC,CAAC,CAAC;aACxK;SACJ;IACL,CAAC;IAEM,WAAW,CAAC,QAAgB;QAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,yBAAyB,CAAC,GAAG,WAA8C;QAC9E,IAAI,CAAC,uBAAuB,GAAG,IAAA,2BAAc,EAAC,WAAW,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,4BAA4B,CAAC,GAAG,WAA8C;QACjF,IAAI,CAAC,0BAA0B,GAAG,IAAA,2BAAc,EAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gCAAmB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvJ,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,IAAyC;QACpD,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,OAAuC;QACrD,IAAI,IAAA,gCAAmB,GAAE,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACzH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW,CAAC,QAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,SAAS,CAAC,OAAwD,EAAE,MAAoC;QAClH,IAAI,MAAM,YAAY,yCAA4B,EAAE;YAChD,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;SACvC;aAAM,IAAI,MAAM,YAAY,sCAAyB,EAAE;YACpD,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACpC;aAAM,IAAI,MAAM,YAAY,sCAAyB,EAAE;YACpD,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACpC;aAAM,IAAI,MAAM,YAAY,sCAAyB,EAAE;YACpD,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACpC;aAAM,IAAI,MAAM,YAAY,0CAA6B,EAAE;YACxD,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACxC;aAAM,IAAI,MAAM,YAAY,qCAAwB,EAAE;YACnD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SACnC;aAAM,IAAI,MAAM,YAAY,mCAAsB,EAAE;YACjD,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SACjC;aAAM,IAAI,MAAM,YAAY,qCAAwB,EAAE;YACnD,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SACnC;aAAM,IAAI,MAAM,YAAY,mCAAsB,EAAE;YACjD,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SACjC;aAAM,IAAI,OAAO,YAAY,mBAAmB,EAAE;YAC/C,IAAI,MAAM,YAAY,0CAA6B,EAAE;gBACjD,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aACjC;iBAAM,IAAI,MAAM,YAAY,+CAAkC,EAAE;gBAC7D,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;aACtC;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,aAAa,CAAyC,MAAiC;QACjG,IAAI,OAAqC,CAAC;QAE1C,kCAAkC;QAElC,QAAQ,MAAM,CAAC,IAAI,EAAE;YACjB,KAAK,yCAA4B,CAAC,UAAU;gBACxC,OAAO,GAAG,IAAI,yCAA4B,EAAE,CAAC;gBAC7C,MAAM;YACV,KAAK,yCAA4B,CAAC,OAAO;gBACrC,OAAO,GAAG,IAAI,sCAAyB,EAAE,CAAC;gBAC1C,MAAM;YACV,KAAK,yCAA4B,CAAC,OAAO;gBACrC,OAAO,GAAG,IAAI,sCAAyB,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1F,MAAM;YACV,KAAK,yCAA4B,CAAC,OAAO;gBACrC,OAAO,GAAG,IAAI,sCAAyB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAEvH,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1D,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAE1D,MAAM;YACV,KAAK,yCAA4B,CAAC,WAAW;gBACzC,OAAO,GAAG,IAAI,0CAA6B,EAAE,CAAC;gBAC9C,MAAM;YACV,KAAK,yCAA4B,CAAC,MAAM;gBACpC,OAAO,GAAG,IAAI,qCAAwB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAEtH,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC1D,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAE1D,MAAM;YACV,KAAK,yCAA4B,CAAC,IAAI;gBAClC,OAAO,GAAG,IAAI,mCAAsB,EAAE,CAAC;gBACvC,MAAM;YACV,KAAK,yCAA4B,CAAC,MAAM;gBACpC,OAAO,GAAG,IAAI,qCAAwB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAEtH,IAAI,MAAM,CAAC,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7D,IAAI,MAAM,CAAC,SAAS;oBAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAE7D,MAAM;YACV,KAAK,yCAA4B,CAAC,IAAI;gBAClC,OAAO,GAAG,IAAI,mCAAsB,EAAE,CAAC;gBACvC,MAAM;YACV,KAAK,yCAA4B,CAAC,UAAU;gBACxC,OAAO,GAAG,IAAI,0CAA6B,EAAE,CAAC;gBAE9C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE;oBACrC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAA0C,UAAU,CAAC,CAAC,CAAC;iBACpG;gBAED,MAAM;YACV,KAAK,yCAA4B,CAAC,eAAe;gBAC7C,OAAO,GAAG,IAAI,+CAAkC,EAAE,CAAC;gBAEnD,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,OAAO,EAAE;oBACzC,OAAO,CAAC,aAAa,CAAC,cAAc,YAAY,0CAA6B,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAgC,cAAc,CAAC,CAAC,CAAC;iBACvK;gBAED,MAAM;YACV;gBACI,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;SAClD;QAED,IAAI,CAAC,CAAC,OAAO,YAAY,0CAA6B,CAAC,IAAI,CAAC,CAAC,OAAO,YAAY,+CAAkC,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,yCAA4B,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,yCAA4B,CAAC,eAAe,EAAE;YAC5O,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;SACjD;QAED,OAAO,OAAO;aACT,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;aACpB,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC;aAClC,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC;aACtD,2BAA2B,CAAC,MAAM,CAAC,wBAAwB,IAAI,IAAI,CAAM,CAAC;IACnF,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,mBAAmB,CAAc,WAA4D;QACvG,OAAO,IAAI,CAAC,qBAAqB,CAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAI,WAAW,CAAC,CAAC;IAC9G,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAc,OAAgB;QAC7D,OAAO,OAAO,YAAY,mBAAmB,CAAC;IAClD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,yBAAyB,CAAC,WAAoB;QACxD,OAAQ,WAAuC,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAE,WAAuC,CAAC,OAAO,CAAC,CAAC;IAC1J,CAAC;CACJ;AA9OD,kDA8OC"}