reciple 6.0.0-dev.18 → 6.0.0-dev.19

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