reciple 6.0.0-dev.27 → 6.0.0-dev.29

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 (85) hide show
  1. package/dist/lib/bin.mjs +68 -67
  2. package/dist/lib/bin.mjs.map +1 -0
  3. package/dist/lib/esm.mjs +2 -1
  4. package/dist/lib/esm.mjs.map +1 -0
  5. package/dist/lib/index.js +34 -33
  6. package/dist/lib/index.js.map +1 -0
  7. package/dist/lib/reciple/classes/RecipleClient.js +308 -307
  8. package/dist/lib/reciple/classes/RecipleClient.js.map +1 -0
  9. package/dist/lib/reciple/classes/RecipleConfig.js +107 -106
  10. package/dist/lib/reciple/classes/RecipleConfig.js.map +1 -0
  11. package/dist/lib/reciple/classes/RecipleModule.js +137 -94
  12. package/dist/lib/reciple/classes/RecipleModule.js.map +1 -0
  13. package/dist/lib/reciple/classes/builders/MessageCommandBuilder.js +310 -309
  14. package/dist/lib/reciple/classes/builders/MessageCommandBuilder.js.map +1 -0
  15. package/dist/lib/reciple/classes/builders/MessageCommandOptionBuilder.js +127 -126
  16. package/dist/lib/reciple/classes/builders/MessageCommandOptionBuilder.js.map +1 -0
  17. package/dist/lib/reciple/classes/builders/SlashCommandBuilder.js +247 -246
  18. package/dist/lib/reciple/classes/builders/SlashCommandBuilder.js.map +1 -0
  19. package/dist/lib/reciple/classes/managers/ApplicationCommandManager.js +179 -178
  20. package/dist/lib/reciple/classes/managers/ApplicationCommandManager.js.map +1 -0
  21. package/dist/lib/reciple/classes/managers/CommandCooldownManager.js +100 -99
  22. package/dist/lib/reciple/classes/managers/CommandCooldownManager.js.map +1 -0
  23. package/dist/lib/reciple/classes/managers/CommandManager.js +65 -60
  24. package/dist/lib/reciple/classes/managers/CommandManager.js.map +1 -0
  25. package/dist/lib/reciple/classes/managers/MessageCommandOptionManager.js +26 -25
  26. package/dist/lib/reciple/classes/managers/MessageCommandOptionManager.js.map +1 -0
  27. package/dist/lib/reciple/classes/managers/ModuleManager.js +181 -180
  28. package/dist/lib/reciple/classes/managers/ModuleManager.js.map +1 -0
  29. package/dist/lib/reciple/flags.js +32 -31
  30. package/dist/lib/reciple/flags.js.map +1 -0
  31. package/dist/lib/reciple/permissions.js +31 -30
  32. package/dist/lib/reciple/permissions.js.map +1 -0
  33. package/dist/lib/reciple/types/builders.js +12 -11
  34. package/dist/lib/reciple/types/builders.js.map +1 -0
  35. package/dist/lib/reciple/types/commands.js +16 -15
  36. package/dist/lib/reciple/types/commands.js.map +1 -0
  37. package/dist/lib/reciple/types/paramOptions.js +3 -2
  38. package/dist/lib/reciple/types/paramOptions.js.map +1 -0
  39. package/dist/lib/reciple/util.js +72 -71
  40. package/dist/lib/reciple/util.js.map +1 -0
  41. package/dist/lib/reciple/version.js +48 -47
  42. package/dist/lib/reciple/version.js.map +1 -0
  43. package/dist/types/bin.d.mts +3 -2
  44. package/dist/types/bin.d.mts.map +1 -0
  45. package/dist/types/esm.d.mts +2 -1
  46. package/dist/types/esm.d.mts.map +1 -0
  47. package/dist/types/index.d.ts +18 -17
  48. package/dist/types/index.d.ts.map +1 -0
  49. package/dist/types/reciple/classes/RecipleClient.d.ts +115 -114
  50. package/dist/types/reciple/classes/RecipleClient.d.ts.map +1 -0
  51. package/dist/types/reciple/classes/RecipleConfig.d.ts +101 -100
  52. package/dist/types/reciple/classes/RecipleConfig.d.ts.map +1 -0
  53. package/dist/types/reciple/classes/RecipleModule.d.ts +88 -56
  54. package/dist/types/reciple/classes/RecipleModule.d.ts.map +1 -0
  55. package/dist/types/reciple/classes/builders/MessageCommandBuilder.d.ts +190 -189
  56. package/dist/types/reciple/classes/builders/MessageCommandBuilder.d.ts.map +1 -0
  57. package/dist/types/reciple/classes/builders/MessageCommandOptionBuilder.d.ts +54 -53
  58. package/dist/types/reciple/classes/builders/MessageCommandOptionBuilder.d.ts.map +1 -0
  59. package/dist/types/reciple/classes/builders/SlashCommandBuilder.d.ts +99 -98
  60. package/dist/types/reciple/classes/builders/SlashCommandBuilder.d.ts.map +1 -0
  61. package/dist/types/reciple/classes/managers/ApplicationCommandManager.d.ts +54 -53
  62. package/dist/types/reciple/classes/managers/ApplicationCommandManager.d.ts.map +1 -0
  63. package/dist/types/reciple/classes/managers/CommandCooldownManager.d.ts +71 -70
  64. package/dist/types/reciple/classes/managers/CommandCooldownManager.d.ts.map +1 -0
  65. package/dist/types/reciple/classes/managers/CommandManager.d.ts +35 -34
  66. package/dist/types/reciple/classes/managers/CommandManager.d.ts.map +1 -0
  67. package/dist/types/reciple/classes/managers/MessageCommandOptionManager.d.ts +23 -22
  68. package/dist/types/reciple/classes/managers/MessageCommandOptionManager.d.ts.map +1 -0
  69. package/dist/types/reciple/classes/managers/ModuleManager.d.ts +50 -49
  70. package/dist/types/reciple/classes/managers/ModuleManager.d.ts.map +1 -0
  71. package/dist/types/reciple/flags.d.ts +18 -17
  72. package/dist/types/reciple/flags.d.ts.map +1 -0
  73. package/dist/types/reciple/permissions.d.ts +16 -15
  74. package/dist/types/reciple/permissions.d.ts.map +1 -0
  75. package/dist/types/reciple/types/builders.d.ts +206 -205
  76. package/dist/types/reciple/types/builders.d.ts.map +1 -0
  77. package/dist/types/reciple/types/commands.d.ts +82 -81
  78. package/dist/types/reciple/types/commands.d.ts.map +1 -0
  79. package/dist/types/reciple/types/paramOptions.d.ts +102 -101
  80. package/dist/types/reciple/types/paramOptions.d.ts.map +1 -0
  81. package/dist/types/reciple/util.d.ts +27 -26
  82. package/dist/types/reciple/util.d.ts.map +1 -0
  83. package/dist/types/reciple/version.d.ts +26 -25
  84. package/dist/types/reciple/version.d.ts.map +1 -0
  85. package/package.json +8 -6
@@ -1,246 +1,247 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SlashCommandBuilder = void 0;
4
- const builders_1 = require("../../types/builders");
5
- const util_1 = require("../../util");
6
- const discord_js_1 = require("discord.js");
7
- /**
8
- * Reciple builder for slash command
9
- */
10
- class SlashCommandBuilder extends discord_js_1.SlashCommandBuilder {
11
- constructor(data) {
12
- super();
13
- this.type = builders_1.CommandType.SlashCommand;
14
- this._cooldown = 0;
15
- this._requiredBotPermissions = [];
16
- this._requiredMemberPermissions = [];
17
- this._execute = () => {
18
- /* Execute */
19
- };
20
- // TODO: WTH
21
- if (data?.name !== undefined)
22
- this.setName(data.name);
23
- if (data?.description !== undefined)
24
- this.setDescription(data.description);
25
- if (data?.cooldown !== undefined)
26
- this.setCooldown(Number(data?.cooldown));
27
- if (data?.requiredBotPermissions !== undefined)
28
- this.setRequiredBotPermissions(data.requiredBotPermissions);
29
- if (data?.requiredMemberPermissions !== undefined)
30
- this.setRequiredMemberPermissions(data.requiredMemberPermissions);
31
- if (data?.halt !== undefined)
32
- this.setHalt(data.halt);
33
- if (data?.execute !== undefined)
34
- this.setExecute(data.execute);
35
- if (data?.metadata !== undefined)
36
- this.setMetadata(data.metadata);
37
- if (data?.nameLocalizations !== undefined)
38
- this.setNameLocalizations(data.nameLocalizations);
39
- if (data?.descriptionLocalizations !== undefined)
40
- this.setDescriptionLocalizations(data.descriptionLocalizations);
41
- if (data?.defaultMemberPermissions !== undefined)
42
- this.setDefaultMemberPermissions(data.defaultMemberPermissions);
43
- if (data?.dmPermission !== undefined)
44
- this.setDMPermission(true);
45
- if (data?.defaultPermission !== undefined)
46
- this.setDefaultPermission(true);
47
- if (data?.options) {
48
- for (const option of data.options) {
49
- SlashCommandBuilder.addOption(this, (0, util_1.isClass)(option) ? option : SlashCommandBuilder.resolveOption(option));
50
- }
51
- }
52
- }
53
- get cooldown() {
54
- return this._cooldown;
55
- }
56
- get requiredBotPermissions() {
57
- return this._requiredBotPermissions;
58
- }
59
- get requiredMemberPermissions() {
60
- return this._requiredMemberPermissions;
61
- }
62
- get halt() {
63
- return this._halt;
64
- }
65
- get execute() {
66
- return this._execute;
67
- }
68
- set cooldown(cooldown) {
69
- this.setCooldown(cooldown);
70
- }
71
- set requiredBotPermissions(permissions) {
72
- this.setRequiredBotPermissions(permissions);
73
- }
74
- set requiredMemberPermissions(permissions) {
75
- this.setRequiredMemberPermissions(permissions);
76
- }
77
- set halt(halt) {
78
- this.setHalt(halt);
79
- }
80
- set execute(execute) {
81
- this.setExecute(execute);
82
- }
83
- setCooldown(cooldown) {
84
- this._cooldown = cooldown;
85
- return this;
86
- }
87
- setRequiredBotPermissions(...permissions) {
88
- this._requiredBotPermissions = (0, discord_js_1.normalizeArray)(permissions);
89
- return this;
90
- }
91
- setRequiredMemberPermissions(...permissions) {
92
- this._requiredMemberPermissions = (0, discord_js_1.normalizeArray)(permissions);
93
- this.setDefaultMemberPermissions(this.requiredMemberPermissions.length ? new discord_js_1.PermissionsBitField(this.requiredMemberPermissions).bitfield : undefined);
94
- return this;
95
- }
96
- setHalt(halt) {
97
- this._halt = halt || undefined;
98
- return this;
99
- }
100
- setExecute(execute) {
101
- if ((0, discord_js_1.isValidationEnabled)() && (!execute || typeof execute !== 'function'))
102
- throw new Error('execute must be a function.');
103
- this._execute = execute;
104
- return this;
105
- }
106
- setMetadata(metadata) {
107
- this.metadata = metadata;
108
- return this;
109
- }
110
- /**
111
- * Add option builder to command builder
112
- * @param builder Command/Subcommand builder
113
- * @param option Option builder
114
- */
115
- static addOption(builder, option) {
116
- if (option instanceof discord_js_1.SlashCommandAttachmentOption) {
117
- builder.addAttachmentOption(option);
118
- }
119
- else if (option instanceof discord_js_1.SlashCommandBooleanOption) {
120
- builder.addBooleanOption(option);
121
- }
122
- else if (option instanceof discord_js_1.SlashCommandChannelOption) {
123
- builder.addChannelOption(option);
124
- }
125
- else if (option instanceof discord_js_1.SlashCommandIntegerOption) {
126
- builder.addIntegerOption(option);
127
- }
128
- else if (option instanceof discord_js_1.SlashCommandMentionableOption) {
129
- builder.addMentionableOption(option);
130
- }
131
- else if (option instanceof discord_js_1.SlashCommandNumberOption) {
132
- builder.addNumberOption(option);
133
- }
134
- else if (option instanceof discord_js_1.SlashCommandRoleOption) {
135
- builder.addRoleOption(option);
136
- }
137
- else if (option instanceof discord_js_1.SlashCommandStringOption) {
138
- builder.addStringOption(option);
139
- }
140
- else if (option instanceof discord_js_1.SlashCommandUserOption) {
141
- builder.addUserOption(option);
142
- }
143
- else if (builder instanceof SlashCommandBuilder) {
144
- if (option instanceof discord_js_1.SlashCommandSubcommandBuilder) {
145
- builder.addSubcommand(option);
146
- }
147
- else if (option instanceof discord_js_1.SlashCommandSubcommandGroupBuilder) {
148
- builder.addSubcommandGroup(option);
149
- }
150
- }
151
- return builder;
152
- }
153
- /**
154
- * Resolve option data
155
- * @param option Option dara to resolve
156
- */
157
- static resolveOption(option) {
158
- let builder;
159
- // TODO: I can do better than this
160
- switch (option.type) {
161
- case discord_js_1.ApplicationCommandOptionType.Attachment:
162
- builder = new discord_js_1.SlashCommandAttachmentOption();
163
- break;
164
- case discord_js_1.ApplicationCommandOptionType.Boolean:
165
- builder = new discord_js_1.SlashCommandBooleanOption();
166
- break;
167
- case discord_js_1.ApplicationCommandOptionType.Channel:
168
- builder = new discord_js_1.SlashCommandChannelOption().addChannelTypes(...(option.channelTypes ?? []));
169
- break;
170
- case discord_js_1.ApplicationCommandOptionType.Integer:
171
- builder = new discord_js_1.SlashCommandIntegerOption().addChoices(...(option.choices ?? [])).setAutocomplete(!!option.autocomplete);
172
- if (option.maxValue)
173
- builder.setMaxValue(option.maxValue);
174
- if (option.minValue)
175
- builder.setMinValue(option.minValue);
176
- break;
177
- case discord_js_1.ApplicationCommandOptionType.Mentionable:
178
- builder = new discord_js_1.SlashCommandMentionableOption();
179
- break;
180
- case discord_js_1.ApplicationCommandOptionType.Number:
181
- builder = new discord_js_1.SlashCommandNumberOption().addChoices(...(option.choices ?? [])).setAutocomplete(!!option.autocomplete);
182
- if (option.maxValue)
183
- builder.setMaxValue(option.maxValue);
184
- if (option.minValue)
185
- builder.setMinValue(option.minValue);
186
- break;
187
- case discord_js_1.ApplicationCommandOptionType.Role:
188
- builder = new discord_js_1.SlashCommandRoleOption();
189
- break;
190
- case discord_js_1.ApplicationCommandOptionType.String:
191
- builder = new discord_js_1.SlashCommandStringOption().addChoices(...(option.choices ?? [])).setAutocomplete(!!option.autocomplete);
192
- if (option.maxLength)
193
- builder.setMaxLength(option.maxLength);
194
- if (option.minLength)
195
- builder.setMinLength(option.minLength);
196
- break;
197
- case discord_js_1.ApplicationCommandOptionType.User:
198
- builder = new discord_js_1.SlashCommandUserOption();
199
- break;
200
- case discord_js_1.ApplicationCommandOptionType.Subcommand:
201
- builder = new discord_js_1.SlashCommandSubcommandBuilder();
202
- for (const optionData of option.options) {
203
- this.addOption(builder, this.resolveOption(optionData));
204
- }
205
- break;
206
- case discord_js_1.ApplicationCommandOptionType.SubcommandGroup:
207
- builder = new discord_js_1.SlashCommandSubcommandGroupBuilder();
208
- for (const subCommandData of option.options) {
209
- builder.addSubcommand(subCommandData instanceof discord_js_1.SlashCommandSubcommandBuilder ? subCommandData : this.resolveOption(subCommandData));
210
- }
211
- break;
212
- default:
213
- throw new TypeError('Unknown option data');
214
- }
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) {
216
- builder.setRequired(option.required ?? false);
217
- }
218
- return builder
219
- .setName(option.name)
220
- .setDescription(option.description)
221
- .setNameLocalizations(option.nameLocalizations ?? null)
222
- .setDescriptionLocalizations(option.descriptionLocalizations ?? null);
223
- }
224
- /**
225
- * Resolve slash command data/builder
226
- * @param commandData Command data to resolve
227
- */
228
- static resolveSlashCommand(commandData) {
229
- return this.isSlashCommandBuilder(commandData) ? commandData : new SlashCommandBuilder(commandData);
230
- }
231
- /**
232
- * Is a slash command builder
233
- * @param builder data to check
234
- */
235
- static isSlashCommandBuilder(builder) {
236
- return builder instanceof SlashCommandBuilder;
237
- }
238
- /**
239
- * Is a slash command execute data
240
- * @param executeData data to check
241
- */
242
- static isSlashCommandExecuteData(executeData) {
243
- return executeData.builder !== undefined && this.isSlashCommandBuilder(executeData.builder);
244
- }
245
- }
246
- exports.SlashCommandBuilder = SlashCommandBuilder;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlashCommandBuilder = void 0;
4
+ const builders_1 = require("../../types/builders");
5
+ const util_1 = require("../../util");
6
+ const discord_js_1 = require("discord.js");
7
+ /**
8
+ * Reciple builder for slash command
9
+ */
10
+ class SlashCommandBuilder extends discord_js_1.SlashCommandBuilder {
11
+ constructor(data) {
12
+ super();
13
+ this.type = builders_1.CommandType.SlashCommand;
14
+ this._cooldown = 0;
15
+ this._requiredBotPermissions = [];
16
+ this._requiredMemberPermissions = [];
17
+ this._execute = () => {
18
+ /* Execute */
19
+ };
20
+ // TODO: WTH
21
+ if (data?.name !== undefined)
22
+ this.setName(data.name);
23
+ if (data?.description !== undefined)
24
+ this.setDescription(data.description);
25
+ if (data?.cooldown !== undefined)
26
+ this.setCooldown(Number(data?.cooldown));
27
+ if (data?.requiredBotPermissions !== undefined)
28
+ this.setRequiredBotPermissions(data.requiredBotPermissions);
29
+ if (data?.requiredMemberPermissions !== undefined)
30
+ this.setRequiredMemberPermissions(data.requiredMemberPermissions);
31
+ if (data?.halt !== undefined)
32
+ this.setHalt(data.halt);
33
+ if (data?.execute !== undefined)
34
+ this.setExecute(data.execute);
35
+ if (data?.metadata !== undefined)
36
+ this.setMetadata(data.metadata);
37
+ if (data?.nameLocalizations !== undefined)
38
+ this.setNameLocalizations(data.nameLocalizations);
39
+ if (data?.descriptionLocalizations !== undefined)
40
+ this.setDescriptionLocalizations(data.descriptionLocalizations);
41
+ if (data?.defaultMemberPermissions !== undefined)
42
+ this.setDefaultMemberPermissions(data.defaultMemberPermissions);
43
+ if (data?.dmPermission !== undefined)
44
+ this.setDMPermission(true);
45
+ if (data?.defaultPermission !== undefined)
46
+ this.setDefaultPermission(true);
47
+ if (data?.options) {
48
+ for (const option of data.options) {
49
+ SlashCommandBuilder.addOption(this, (0, util_1.isClass)(option) ? option : SlashCommandBuilder.resolveOption(option));
50
+ }
51
+ }
52
+ }
53
+ get cooldown() {
54
+ return this._cooldown;
55
+ }
56
+ get requiredBotPermissions() {
57
+ return this._requiredBotPermissions;
58
+ }
59
+ get requiredMemberPermissions() {
60
+ return this._requiredMemberPermissions;
61
+ }
62
+ get halt() {
63
+ return this._halt;
64
+ }
65
+ get execute() {
66
+ return this._execute;
67
+ }
68
+ set cooldown(cooldown) {
69
+ this.setCooldown(cooldown);
70
+ }
71
+ set requiredBotPermissions(permissions) {
72
+ this.setRequiredBotPermissions(permissions);
73
+ }
74
+ set requiredMemberPermissions(permissions) {
75
+ this.setRequiredMemberPermissions(permissions);
76
+ }
77
+ set halt(halt) {
78
+ this.setHalt(halt);
79
+ }
80
+ set execute(execute) {
81
+ this.setExecute(execute);
82
+ }
83
+ setCooldown(cooldown) {
84
+ this._cooldown = cooldown;
85
+ return this;
86
+ }
87
+ setRequiredBotPermissions(...permissions) {
88
+ this._requiredBotPermissions = (0, discord_js_1.normalizeArray)(permissions);
89
+ return this;
90
+ }
91
+ setRequiredMemberPermissions(...permissions) {
92
+ this._requiredMemberPermissions = (0, discord_js_1.normalizeArray)(permissions);
93
+ this.setDefaultMemberPermissions(this.requiredMemberPermissions.length ? new discord_js_1.PermissionsBitField(this.requiredMemberPermissions).bitfield : undefined);
94
+ return this;
95
+ }
96
+ setHalt(halt) {
97
+ this._halt = halt || undefined;
98
+ return this;
99
+ }
100
+ setExecute(execute) {
101
+ if ((0, discord_js_1.isValidationEnabled)() && (!execute || typeof execute !== 'function'))
102
+ throw new Error('execute must be a function.');
103
+ this._execute = execute;
104
+ return this;
105
+ }
106
+ setMetadata(metadata) {
107
+ this.metadata = metadata;
108
+ return this;
109
+ }
110
+ /**
111
+ * Add option builder to command builder
112
+ * @param builder Command/Subcommand builder
113
+ * @param option Option builder
114
+ */
115
+ static addOption(builder, option) {
116
+ if (option instanceof discord_js_1.SlashCommandAttachmentOption) {
117
+ builder.addAttachmentOption(option);
118
+ }
119
+ else if (option instanceof discord_js_1.SlashCommandBooleanOption) {
120
+ builder.addBooleanOption(option);
121
+ }
122
+ else if (option instanceof discord_js_1.SlashCommandChannelOption) {
123
+ builder.addChannelOption(option);
124
+ }
125
+ else if (option instanceof discord_js_1.SlashCommandIntegerOption) {
126
+ builder.addIntegerOption(option);
127
+ }
128
+ else if (option instanceof discord_js_1.SlashCommandMentionableOption) {
129
+ builder.addMentionableOption(option);
130
+ }
131
+ else if (option instanceof discord_js_1.SlashCommandNumberOption) {
132
+ builder.addNumberOption(option);
133
+ }
134
+ else if (option instanceof discord_js_1.SlashCommandRoleOption) {
135
+ builder.addRoleOption(option);
136
+ }
137
+ else if (option instanceof discord_js_1.SlashCommandStringOption) {
138
+ builder.addStringOption(option);
139
+ }
140
+ else if (option instanceof discord_js_1.SlashCommandUserOption) {
141
+ builder.addUserOption(option);
142
+ }
143
+ else if (builder instanceof SlashCommandBuilder) {
144
+ if (option instanceof discord_js_1.SlashCommandSubcommandBuilder) {
145
+ builder.addSubcommand(option);
146
+ }
147
+ else if (option instanceof discord_js_1.SlashCommandSubcommandGroupBuilder) {
148
+ builder.addSubcommandGroup(option);
149
+ }
150
+ }
151
+ return builder;
152
+ }
153
+ /**
154
+ * Resolve option data
155
+ * @param option Option dara to resolve
156
+ */
157
+ static resolveOption(option) {
158
+ let builder;
159
+ // TODO: I can do better than this
160
+ switch (option.type) {
161
+ case discord_js_1.ApplicationCommandOptionType.Attachment:
162
+ builder = new discord_js_1.SlashCommandAttachmentOption();
163
+ break;
164
+ case discord_js_1.ApplicationCommandOptionType.Boolean:
165
+ builder = new discord_js_1.SlashCommandBooleanOption();
166
+ break;
167
+ case discord_js_1.ApplicationCommandOptionType.Channel:
168
+ builder = new discord_js_1.SlashCommandChannelOption().addChannelTypes(...(option.channelTypes ?? []));
169
+ break;
170
+ case discord_js_1.ApplicationCommandOptionType.Integer:
171
+ builder = new discord_js_1.SlashCommandIntegerOption().addChoices(...(option.choices ?? [])).setAutocomplete(!!option.autocomplete);
172
+ if (option.maxValue)
173
+ builder.setMaxValue(option.maxValue);
174
+ if (option.minValue)
175
+ builder.setMinValue(option.minValue);
176
+ break;
177
+ case discord_js_1.ApplicationCommandOptionType.Mentionable:
178
+ builder = new discord_js_1.SlashCommandMentionableOption();
179
+ break;
180
+ case discord_js_1.ApplicationCommandOptionType.Number:
181
+ builder = new discord_js_1.SlashCommandNumberOption().addChoices(...(option.choices ?? [])).setAutocomplete(!!option.autocomplete);
182
+ if (option.maxValue)
183
+ builder.setMaxValue(option.maxValue);
184
+ if (option.minValue)
185
+ builder.setMinValue(option.minValue);
186
+ break;
187
+ case discord_js_1.ApplicationCommandOptionType.Role:
188
+ builder = new discord_js_1.SlashCommandRoleOption();
189
+ break;
190
+ case discord_js_1.ApplicationCommandOptionType.String:
191
+ builder = new discord_js_1.SlashCommandStringOption().addChoices(...(option.choices ?? [])).setAutocomplete(!!option.autocomplete);
192
+ if (option.maxLength)
193
+ builder.setMaxLength(option.maxLength);
194
+ if (option.minLength)
195
+ builder.setMinLength(option.minLength);
196
+ break;
197
+ case discord_js_1.ApplicationCommandOptionType.User:
198
+ builder = new discord_js_1.SlashCommandUserOption();
199
+ break;
200
+ case discord_js_1.ApplicationCommandOptionType.Subcommand:
201
+ builder = new discord_js_1.SlashCommandSubcommandBuilder();
202
+ for (const optionData of option.options) {
203
+ this.addOption(builder, this.resolveOption(optionData));
204
+ }
205
+ break;
206
+ case discord_js_1.ApplicationCommandOptionType.SubcommandGroup:
207
+ builder = new discord_js_1.SlashCommandSubcommandGroupBuilder();
208
+ for (const subCommandData of option.options) {
209
+ builder.addSubcommand(subCommandData instanceof discord_js_1.SlashCommandSubcommandBuilder ? subCommandData : this.resolveOption(subCommandData));
210
+ }
211
+ break;
212
+ default:
213
+ throw new TypeError('Unknown option data');
214
+ }
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) {
216
+ builder.setRequired(option.required ?? false);
217
+ }
218
+ return builder
219
+ .setName(option.name)
220
+ .setDescription(option.description)
221
+ .setNameLocalizations(option.nameLocalizations ?? null)
222
+ .setDescriptionLocalizations(option.descriptionLocalizations ?? null);
223
+ }
224
+ /**
225
+ * Resolve slash command data/builder
226
+ * @param commandData Command data to resolve
227
+ */
228
+ static resolveSlashCommand(commandData) {
229
+ return this.isSlashCommandBuilder(commandData) ? commandData : new SlashCommandBuilder(commandData);
230
+ }
231
+ /**
232
+ * Is a slash command builder
233
+ * @param builder data to check
234
+ */
235
+ static isSlashCommandBuilder(builder) {
236
+ return builder instanceof SlashCommandBuilder;
237
+ }
238
+ /**
239
+ * Is a slash command execute data
240
+ * @param executeData data to check
241
+ */
242
+ static isSlashCommandExecuteData(executeData) {
243
+ return executeData.builder !== undefined && this.isSlashCommandBuilder(executeData.builder);
244
+ }
245
+ }
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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"}