reciple 6.0.4 → 7.0.0-dev.11

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 (112) hide show
  1. package/LICENSE +674 -674
  2. package/README.md +193 -182
  3. package/bin/bin.d.mts +2 -0
  4. package/bin/bin.mjs +73 -0
  5. package/bin/bin.mjs.map +1 -0
  6. package/bin/classes/Config.d.ts +32 -0
  7. package/bin/classes/Config.js +72 -0
  8. package/bin/classes/Config.js.map +1 -0
  9. package/bin/esm.d.mts +1 -0
  10. package/{dist/lib → bin}/esm.mjs +0 -0
  11. package/bin/esm.mjs.map +1 -0
  12. package/bin/exports.d.ts +4 -0
  13. package/bin/exports.js +21 -0
  14. package/bin/exports.js.map +1 -0
  15. package/bin/index.d.ts +2 -0
  16. package/bin/index.js +19 -0
  17. package/bin/index.js.map +1 -0
  18. package/bin/utils/cli.d.ts +4 -0
  19. package/bin/utils/cli.js +20 -0
  20. package/bin/utils/cli.js.map +1 -0
  21. package/bin/utils/logger.d.ts +6 -0
  22. package/bin/utils/logger.js +61 -0
  23. package/bin/utils/logger.js.map +1 -0
  24. package/bin/utils/modules.d.ts +3 -0
  25. package/bin/utils/modules.js +35 -0
  26. package/bin/utils/modules.js.map +1 -0
  27. package/package.json +26 -66
  28. package/static/config.yml +97 -0
  29. package/dist/lib/bin.mjs +0 -77
  30. package/dist/lib/bin.mjs.map +0 -1
  31. package/dist/lib/esm.mjs.map +0 -1
  32. package/dist/lib/index.js +0 -34
  33. package/dist/lib/index.js.map +0 -1
  34. package/dist/lib/reciple/classes/RecipleClient.js +0 -293
  35. package/dist/lib/reciple/classes/RecipleClient.js.map +0 -1
  36. package/dist/lib/reciple/classes/RecipleConfig.js +0 -107
  37. package/dist/lib/reciple/classes/RecipleConfig.js.map +0 -1
  38. package/dist/lib/reciple/classes/RecipleModule.js +0 -137
  39. package/dist/lib/reciple/classes/RecipleModule.js.map +0 -1
  40. package/dist/lib/reciple/classes/builders/MessageCommandBuilder.js +0 -316
  41. package/dist/lib/reciple/classes/builders/MessageCommandBuilder.js.map +0 -1
  42. package/dist/lib/reciple/classes/builders/MessageCommandOptionBuilder.js +0 -127
  43. package/dist/lib/reciple/classes/builders/MessageCommandOptionBuilder.js.map +0 -1
  44. package/dist/lib/reciple/classes/builders/SlashCommandBuilder.js +0 -253
  45. package/dist/lib/reciple/classes/builders/SlashCommandBuilder.js.map +0 -1
  46. package/dist/lib/reciple/classes/managers/ApplicationCommandManager.js +0 -179
  47. package/dist/lib/reciple/classes/managers/ApplicationCommandManager.js.map +0 -1
  48. package/dist/lib/reciple/classes/managers/CommandCooldownManager.js +0 -100
  49. package/dist/lib/reciple/classes/managers/CommandCooldownManager.js.map +0 -1
  50. package/dist/lib/reciple/classes/managers/CommandManager.js +0 -65
  51. package/dist/lib/reciple/classes/managers/CommandManager.js.map +0 -1
  52. package/dist/lib/reciple/classes/managers/MessageCommandOptionManager.js +0 -26
  53. package/dist/lib/reciple/classes/managers/MessageCommandOptionManager.js.map +0 -1
  54. package/dist/lib/reciple/classes/managers/ModuleManager.js +0 -181
  55. package/dist/lib/reciple/classes/managers/ModuleManager.js.map +0 -1
  56. package/dist/lib/reciple/flags.js +0 -32
  57. package/dist/lib/reciple/flags.js.map +0 -1
  58. package/dist/lib/reciple/permissions.js +0 -31
  59. package/dist/lib/reciple/permissions.js.map +0 -1
  60. package/dist/lib/reciple/types/builders.js +0 -12
  61. package/dist/lib/reciple/types/builders.js.map +0 -1
  62. package/dist/lib/reciple/types/commands.js +0 -16
  63. package/dist/lib/reciple/types/commands.js.map +0 -1
  64. package/dist/lib/reciple/types/paramOptions.js +0 -3
  65. package/dist/lib/reciple/types/paramOptions.js.map +0 -1
  66. package/dist/lib/reciple/util.js +0 -72
  67. package/dist/lib/reciple/util.js.map +0 -1
  68. package/dist/lib/reciple/version.js +0 -48
  69. package/dist/lib/reciple/version.js.map +0 -1
  70. package/dist/types/bin.d.mts +0 -3
  71. package/dist/types/bin.d.mts.map +0 -1
  72. package/dist/types/esm.d.mts +0 -2
  73. package/dist/types/esm.d.mts.map +0 -1
  74. package/dist/types/index.d.ts +0 -18
  75. package/dist/types/index.d.ts.map +0 -1
  76. package/dist/types/reciple/classes/RecipleClient.d.ts +0 -116
  77. package/dist/types/reciple/classes/RecipleClient.d.ts.map +0 -1
  78. package/dist/types/reciple/classes/RecipleConfig.d.ts +0 -102
  79. package/dist/types/reciple/classes/RecipleConfig.d.ts.map +0 -1
  80. package/dist/types/reciple/classes/RecipleModule.d.ts +0 -88
  81. package/dist/types/reciple/classes/RecipleModule.d.ts.map +0 -1
  82. package/dist/types/reciple/classes/builders/MessageCommandBuilder.d.ts +0 -198
  83. package/dist/types/reciple/classes/builders/MessageCommandBuilder.d.ts.map +0 -1
  84. package/dist/types/reciple/classes/builders/MessageCommandOptionBuilder.d.ts +0 -54
  85. package/dist/types/reciple/classes/builders/MessageCommandOptionBuilder.d.ts.map +0 -1
  86. package/dist/types/reciple/classes/builders/SlashCommandBuilder.d.ts +0 -107
  87. package/dist/types/reciple/classes/builders/SlashCommandBuilder.d.ts.map +0 -1
  88. package/dist/types/reciple/classes/managers/ApplicationCommandManager.d.ts +0 -54
  89. package/dist/types/reciple/classes/managers/ApplicationCommandManager.d.ts.map +0 -1
  90. package/dist/types/reciple/classes/managers/CommandCooldownManager.d.ts +0 -71
  91. package/dist/types/reciple/classes/managers/CommandCooldownManager.d.ts.map +0 -1
  92. package/dist/types/reciple/classes/managers/CommandManager.d.ts +0 -35
  93. package/dist/types/reciple/classes/managers/CommandManager.d.ts.map +0 -1
  94. package/dist/types/reciple/classes/managers/MessageCommandOptionManager.d.ts +0 -23
  95. package/dist/types/reciple/classes/managers/MessageCommandOptionManager.d.ts.map +0 -1
  96. package/dist/types/reciple/classes/managers/ModuleManager.d.ts +0 -50
  97. package/dist/types/reciple/classes/managers/ModuleManager.d.ts.map +0 -1
  98. package/dist/types/reciple/flags.d.ts +0 -18
  99. package/dist/types/reciple/flags.d.ts.map +0 -1
  100. package/dist/types/reciple/permissions.d.ts +0 -16
  101. package/dist/types/reciple/permissions.d.ts.map +0 -1
  102. package/dist/types/reciple/types/builders.d.ts +0 -206
  103. package/dist/types/reciple/types/builders.d.ts.map +0 -1
  104. package/dist/types/reciple/types/commands.d.ts +0 -86
  105. package/dist/types/reciple/types/commands.d.ts.map +0 -1
  106. package/dist/types/reciple/types/paramOptions.d.ts +0 -102
  107. package/dist/types/reciple/types/paramOptions.d.ts.map +0 -1
  108. package/dist/types/reciple/util.d.ts +0 -27
  109. package/dist/types/reciple/util.d.ts.map +0 -1
  110. package/dist/types/reciple/version.d.ts +0 -26
  111. package/dist/types/reciple/version.d.ts.map +0 -1
  112. package/resource/reciple.yml +0 -122
package/README.md CHANGED
@@ -1,182 +1,193 @@
1
- <h1 align="center">
2
- <img src="https://i.imgur.com/DWM0tJL.png" width="50%">
3
- <br>
4
- </h1>
5
-
6
- <h3 align="center">
7
- <a href="https://npmjs.org/package/reciple">
8
- <img src="https://img.shields.io/npm/v/reciple?label=latest%20npm%20release%20">
9
- </a>
10
- <a href="https://github.com/FalloutStudios/Reciple/blob/main/LICENSE">
11
- <img src="https://img.shields.io/github/license/FalloutStudios/Reciple">
12
- </a>
13
- <a href="https://www.codefactor.io/repository/github/falloutstudios/reciple/overview/main">
14
- <img src="https://www.codefactor.io/repository/github/falloutstudios/reciple/badge/main">
15
- </a>
16
-
17
- A simple Dicord.js handler that just works.
18
- </h3>
19
-
20
- ***
21
-
22
- <p align="center">
23
- <a href="https://discord.gg/2CattJYNpw" title="">
24
- <img src="https://i.imgur.com/GffJByO.png" alt="Join Discord">
25
- </a>
26
- </p>
27
-
28
- # Features
29
-
30
- * [CLI based handler](#command-line)
31
- * [Message command builder](#messagecommandbuilder-example)
32
- * [Built-in message command validation](#built-in-message-command-validation)
33
- * Automatically register application commands
34
- * [Built-in command cooldowns](#command-cooldowns)
35
- * [Highly configurable](#config)
36
-
37
- ## Installation
38
-
39
- To install the bot, run the following command in your terminal:
40
-
41
- ```bash
42
- npm i reciple discord.js
43
- ```
44
-
45
- You can initialize the bot to the current directory with the following command in your terminal:
46
-
47
- ```bash
48
- npx reciple
49
- ```
50
-
51
- It will ask you to continue if the directory is not empty. Type `y` to continue. After the bot has been initialized, it will ask you for your bot token.
52
-
53
- > You can change the token anytime you want
54
-
55
- ## Config
56
-
57
- You can configure the bot in `reciple.yml` located in the bot's root directory.
58
-
59
- ### Token
60
-
61
- You can directly change the token in `reciple.yml`.
62
-
63
- ```yml
64
- token: "YOUR_TOKEN_HERE"
65
- ```
66
-
67
- Using environment variables is also supported.
68
-
69
- ```yml
70
- token: "env:TOKEN_VARIABLE"
71
- ```
72
-
73
- You can override the given token using your terminal
74
-
75
- ```bash
76
- npx reciple --token "YOUR_TOKEN_HERE"
77
- ```
78
-
79
- Use env variable
80
-
81
- ```bash
82
- npx reciple --token "env:TOKEN_VARIABLE"
83
- ```
84
-
85
- ## Starting the bot
86
- To start the bot, run the following command:
87
-
88
- ```bash
89
- npx reciple
90
- ```
91
-
92
- ## Command line
93
-
94
- **Usage:** `reciple [options] [current-working-directory]`
95
-
96
- **Arguments:**
97
- * `current-working-directory` Change the current working directory
98
-
99
- **Options:**
100
- * `-v, --version` output the version number
101
- * `-t, --token <token>` Replace used bot token
102
- * `-c, --config <config>` Change path to config file
103
- * `-D, --debugmode` Enable debug mode
104
- * `-y, --yes` Automatically agree to Reciple confirmation prompts
105
- * `-h, --help` display help for command
106
-
107
- ## MessageCommandBuilder Example
108
-
109
- * Read docs for [MessageCommandBuilder](https://reciple.js.org/#/docs/reciple.js/main/class/MessageCommandBuilder)
110
-
111
- ```js
112
- new MessageCommandBuilder()
113
- .setName("command")
114
- .setDescription("Your lil tiny description")
115
- .addAliases('cmd', 'cmd1')
116
- .setExecute(command => command.message.reply("Hello!"))
117
- ```
118
-
119
- ## Built-in message command validation
120
-
121
- * Read docs for [MessageCommandBuilder#setValidateOptions()](https://reciple.js.org/#/docs/reciple.js/main/class/MessageCommandBuilder?scrollTo=setValidateOptions), [MessageCommandOptionBuilder](https://reciple.js.org/#/docs/reciple.js/main/class/MessageCommandOptionBuilder), [MessageCommandOptionManager](https://reciple.js.org/#/docs/reciple.js/main/class/MessageCommandOptionManager)
122
- ```js
123
- new MessageCommandBuilder()
124
- .setName("command")
125
- .setDescription("Your lil tiny description")
126
- .addAliases('cmd', 'cmd1')
127
- .setValidateOptions(true) // Validate options
128
- .addOption(option => option
129
- .setName("quantity")
130
- .setDescription("Must be a number")
131
- .setRequired(true) // A required option
132
- .setValidator(val => !isNaN(Number(val))) // Validate value
133
- )
134
- .setExecute(async command => {
135
- const quantity = Number(command.options.getValue('quantity', true));
136
-
137
- await command.message.reply("Quantity: " + quantity);
138
- })
139
- ```
140
-
141
- ## Command Cooldowns
142
-
143
- * Read docs for [SlashCommandBuilder#setCooldown()](https://reciple.js.org/#/docs/reciple.js/main/class/SlashCommandBuilder?scrollTo=setCooldown), [MessageCommandBuilder#setCooldown()](https://reciple.js.org/#/docs/reciple.js/main/class/MessageCommandBuilder?scrollTo=setCooldown), [CommandHaltReason](https://reciple.js.org/#/docs/reciple.js/main/typedef/CommandHaltReason), [CommandCooldownData](https://reciple.js.org/#/docs/reciple.js/main/typedef/CommandCooldownData)
144
-
145
- ```js
146
- // Slash command
147
- new SlashCommandBuilder()
148
- .setName("command")
149
- .setDescription("Your lil tiny description")
150
- .setCooldown(1000 * 60) // Cooldown in milliseconds
151
- .setExecute(command => command.interaction.reply('hi'))
152
- .setHalt(async halt => {
153
- // Handle command on cooldown
154
- if (halt.reason == CommandHaltReason.Cooldown) {
155
- await halt.executeData.interaction.reply((halt.expireTime - Date.now()) / 1000 + " seconds cooldown");
156
- return true;
157
- }
158
- })
159
-
160
- // Message command
161
- new MessageCommandBuilder()
162
- .setName("command")
163
- .setDescription("Your lil tiny description")
164
- .setCooldown(1000 * 60) // Cooldown in milliseconds
165
- .setExecute(command => command.message.reply('hi'))
166
- .setHalt(async halt => {
167
- // Handle command on cooldown
168
- if (halt.reason == CommandHaltReason.Cooldown) {
169
- await halt.executeData.message.reply((halt.expireTime - Date.now()) / 1000 + " seconds cooldown");
170
- return true;
171
- }
172
- })
173
- ```
174
-
175
- ***
176
-
177
- > ## Fun Fact
178
- > The name reciple is from a minecraft bug. The bug was a misspelling of the word `recipe`. [View Mojang Bug Report](https://bugs.mojang.com/browse/MC-225837)
179
-
180
- ***
181
-
182
- [#letTheEarthBreathe](https://rebellion.global/)
1
+ <h1 align="center">
2
+ <img src="https://i.imgur.com/DWM0tJL.png" width="50%">
3
+ <br>
4
+ </h1>
5
+
6
+ <h3 align="center">
7
+ <a href="https://npmjs.org/package/reciple">
8
+ <img src="https://img.shields.io/npm/v/reciple?label=latest%20npm%20release%20">
9
+ </a>
10
+ <a href="https://github.com/FalloutStudios/Reciple/blob/main/LICENSE">
11
+ <img src="https://img.shields.io/github/license/FalloutStudios/Reciple">
12
+ </a>
13
+ <a href="https://www.codefactor.io/repository/github/falloutstudios/reciple/overview/main">
14
+ <img src="https://www.codefactor.io/repository/github/falloutstudios/reciple/badge/main">
15
+ </a>
16
+
17
+ A simple Dicord.js handler that just works.
18
+ </h3>
19
+
20
+ # Features
21
+
22
+ * [CLI based handler](#cli-usage)
23
+ * [Supports Context Menus](#context-menus)
24
+ * [Supports Prefix/Message commands](#message-commands)
25
+ * [Validate messsage command options](#validate-message-command-options)
26
+ * [Supports Slash Commands](#slash-commands)
27
+ * [Built-in command cooldowns](#command-cooldowns)
28
+ * Automatically register application commands
29
+ * [Highly configurable](#config)
30
+
31
+ ## Installation
32
+
33
+ To install the bot, run the following command in your terminal:
34
+
35
+ ```bash
36
+ npm i reciple discord.js
37
+ ```
38
+
39
+ You can initialize the bot to the current directory with the following command in your terminal:
40
+
41
+ ```bash
42
+ npx reciple
43
+ ```
44
+
45
+ It will ask you to continue if the directory is not empty. Type `y` to continue. After the bot has been initialized, it will ask you for your bot token.
46
+
47
+ > You can change the token anytime you want
48
+
49
+ ## CLI usage
50
+ ```yml
51
+ Usage: reciple [options] [cwd]
52
+
53
+ Reciple.js - Discord.js handler cli
54
+
55
+ Arguments:
56
+ cwd Change the current working directory
57
+
58
+ Options:
59
+ -v, --version output the version number
60
+ -t, --token <token> Replace used bot token
61
+ -c, --config <config> Change path to config file
62
+ -D, --debugmode Enable debug mode
63
+ -y, --yes Agree to all Reciple confirmation prompts
64
+ --env .env file location
65
+ -h, --help display help for command
66
+ ```
67
+
68
+ ## Message Commands
69
+
70
+ Reciple provides built-in `MessageCommandBuilder` class that can be used for message command handler.
71
+
72
+ ```js
73
+ const { MessageCommandBuilder } = require('reciple');
74
+
75
+ new MessageCommandBuilder()
76
+ .setName("command")
77
+ .setDescription("Your lil tiny description")
78
+ .addAliases('cmd', 'cmd1')
79
+ .setExecute(command => command.message.reply("Hello!"))
80
+ ```
81
+
82
+ ### Validate Message Command Options
83
+
84
+ ```js
85
+ const { MessageCommandBuilder } = require('reciple');
86
+
87
+ new MessageCommandBuilder()
88
+ .setName("command")
89
+ .setDescription("Your lil tiny description")
90
+ .addAliases('cmd', 'cmd1')
91
+ .setValidateOptions(true) // Validate options
92
+ .addOption(option => option
93
+ .setName("quantity")
94
+ .setDescription("Must be a number")
95
+ .setRequired(true) // A required option
96
+ .setValidator(val => !isNaN(Number(val))) // Validate value
97
+ )
98
+ .setExecute(async command => {
99
+ const quantity = Number(command.options.getValue('quantity', true));
100
+
101
+ await command.message.reply("Quantity: " + quantity);
102
+ })
103
+ ```
104
+
105
+ ## Context Menus
106
+
107
+ Reciple provides custom `ContextMenuBuilder` class that can be used for context menu command handler.
108
+
109
+ ```js
110
+ const { ContextMenuBuilder } = require('reciple');
111
+ const { ApplicationCommandType } = require('discord.js');
112
+
113
+ new ContextMenuBuilder()
114
+ .setName('Ban')
115
+ .setType(ApplicationCommandType.User)
116
+ .setExecute(async ({ interaction }) => {
117
+ if (!interaction.inCachedGuild()) return;
118
+ await interaction.member.ban();
119
+ })
120
+ ```
121
+
122
+ ## Slash Commands
123
+
124
+ Reciple provides custom `SlashCommandBuilder` class that can be used for slash command handler.
125
+
126
+ ```js
127
+ const { SlashCommandBuilder } = require('reciple');
128
+
129
+ new SlashCommandBuilder()
130
+ .setName('ping')
131
+ .setDescription('Pong')
132
+ .setExecute(async ({ interaction }) => interaction.reply(`Pong!`))
133
+ ```
134
+
135
+ ## Command Cooldowns
136
+
137
+ ```js
138
+ const { MessageCommandBuilder, MessageCommandBuilder, SlashCommandBuilder } = require('reciple');
139
+ const { ApplicationCommandType } = require('discord.js');
140
+
141
+ new ContextMenuCommandBuilder()
142
+ .setName('Context Menu')
143
+ .setType(ApplicationCommandType.Message)
144
+ .setCooldown(1000 * 5) // 5 seconds cooldown
145
+ .setExecute(async ({ interaction }) => interaction.reply(`Hello!`));
146
+
147
+ new ContextMenuCommandBuilder()
148
+ .setName('message-command')
149
+ .setDescription(`Your command`)
150
+ .setCooldown(1000 * 5) // 5 seconds cooldown
151
+ .setExecute(async ({ message }) => message.reply(`Hello!`));
152
+
153
+ new SlashCommandBuilder()
154
+ .setName('slash-command')
155
+ .setDescription(`Your command`)
156
+ .setCooldown(1000 * 5) // 5 seconds cooldown
157
+ .setExecute(async ({ interaction }) => interaction.reply(`Hello!`));
158
+ ```
159
+
160
+ ## Config
161
+
162
+ You can configure the bot in `reciple.yml` located in the bot's root directory.
163
+
164
+ ### Token
165
+
166
+ You can directly change the token in `reciple.yml`.
167
+
168
+ ```yml
169
+ token: "YOUR_TOKEN_HERE"
170
+ ```
171
+
172
+ Using environment variables is also supported.
173
+
174
+ ```yml
175
+ token: "env:TOKEN_VARIABLE"
176
+ ```
177
+
178
+ You can override the given token using your terminal
179
+
180
+ ```bash
181
+ npx reciple --token "YOUR_TOKEN_HERE"
182
+ ```
183
+
184
+ Use env variable
185
+
186
+ ```bash
187
+ npx reciple --token "env:TOKEN_VARIABLE"
188
+ ```
189
+
190
+ ***
191
+
192
+ > ## Fun Fact
193
+ > The name reciple is from a minecraft bug. The bug was a misspelling of the word `recipe`. [View Mojang Bug Report](https://bugs.mojang.com/browse/MC-225837)
package/bin/bin.d.mts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/bin/bin.mjs ADDED
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, mkdirSync, readdirSync } from 'fs';
3
+ import { flags, cwd } from './utils/cli.js';
4
+ import { path } from 'fallout-utility';
5
+ import micromatch from 'micromatch';
6
+ import promptConfirm from '@inquirer/confirm';
7
+ import { Config } from './classes/Config.js';
8
+ import { ContextMenuCommandBuilder, MessageCommandBuilder, RecipleClient, SlashCommandBuilder, realVersion } from '@reciple/client';
9
+ import { createLogger, eventLogger } from './utils/logger.js';
10
+ import { getModules } from './utils/modules.js';
11
+ const allowedFiles = ['node_modules', 'reciple.yml', 'package.json', '.*'];
12
+ const configPath = flags.config ?? path.join(cwd, 'reciple.yml');
13
+ if (!existsSync(cwd))
14
+ mkdirSync(cwd, { recursive: true });
15
+ if (readdirSync(cwd).filter(f => !micromatch.isMatch(f, allowedFiles)).length && !existsSync(configPath) && !flags.yes) {
16
+ const confirm = await promptConfirm({
17
+ default: false,
18
+ message: 'Would you like to create Reciple config here?'
19
+ });
20
+ if (!confirm)
21
+ process.exit(0);
22
+ }
23
+ const configParser = await (new Config(configPath)).parseConfig();
24
+ const config = configParser.getConfig();
25
+ const client = new RecipleClient({
26
+ recipleOptions: config,
27
+ ...config.client,
28
+ logger: config.logger.enabled ? createLogger(config.logger) : undefined
29
+ });
30
+ client.logger?.info(`Starting Reciple client v${realVersion} - ${new Date()}`);
31
+ eventLogger(client);
32
+ await client.modules.startModules({
33
+ modules: await client.modules.resolveModuleFiles(await getModules(config.modules, file => file.endsWith('.js') || file.endsWith('.mjs') || file.endsWith('.cjs')), config.modules.disableModuleVersionCheck),
34
+ addToModulesCollection: true
35
+ });
36
+ client.once('ready', async () => {
37
+ const loadedModules = await client.modules.loadModules({
38
+ modules: client.modules.modules.toJSON(),
39
+ resolveCommands: true
40
+ });
41
+ client.modules.modules.sweep(m => !loadedModules.some(s => s.id == m.id));
42
+ const unloadModulesAndStopProcess = async (signal) => {
43
+ await client.modules.unloadModules({
44
+ reason: 'ProcessExit',
45
+ modules: client.modules.modules.toJSON(),
46
+ removeCommandsFromClient: false,
47
+ removeFromModulesCollection: true
48
+ });
49
+ client.logger?.warn(`Process exited: ${signal === 'SIGINT' ? 'keyboard interrupt' : signal === 'SIGTERM' ? 'terminate' : signal}`);
50
+ process.exit();
51
+ };
52
+ process.once('SIGINT', signal => unloadModulesAndStopProcess(signal));
53
+ process.once('SIGTERM', signal => unloadModulesAndStopProcess(signal));
54
+ client.on('cacheSweep', () => client.cooldowns.clean());
55
+ await client.commands.registerApplicationCommands();
56
+ client.logger?.warn(`Logged in as ${client.user?.tag} (${client.user?.id})`);
57
+ client.logger?.log(`Loaded ${client.commands.contextMenuCommands.size} context menu commands`);
58
+ client.logger?.log(`Loaded ${client.commands.messageCommands.size} message commands`);
59
+ client.logger?.log(`Loaded ${client.commands.slashCommands.size} slash commands`);
60
+ client.on('interactionCreate', interaction => {
61
+ if (interaction.isContextMenuCommand()) {
62
+ ContextMenuCommandBuilder.execute(client, interaction);
63
+ }
64
+ else if (interaction.isChatInputCommand()) {
65
+ SlashCommandBuilder.execute(client, interaction);
66
+ }
67
+ });
68
+ client.on('messageCreate', message => {
69
+ MessageCommandBuilder.execute(client, message);
70
+ });
71
+ });
72
+ client.login(config.token);
73
+ //# sourceMappingURL=bin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.mjs","sourceRoot":"","sources":["../src/bin.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { RecipleConfigOptions } from '@reciple/client';
2
+ import { ClientOptions } from 'discord.js';
3
+ export interface IConfig extends RecipleConfigOptions {
4
+ logger: {
5
+ enabled: boolean;
6
+ debugmode: boolean;
7
+ coloredMessages: boolean;
8
+ logToFile: {
9
+ enabled: boolean;
10
+ logsFolder: string;
11
+ };
12
+ };
13
+ modules: {
14
+ modulesFolders: string[];
15
+ exclude: string[];
16
+ disableModuleVersionCheck: boolean;
17
+ };
18
+ client: ClientOptions;
19
+ version: string;
20
+ }
21
+ export declare class Config {
22
+ static defaultConfigPath: string;
23
+ config: IConfig | null;
24
+ readonly configPath: string;
25
+ constructor(configPath: string);
26
+ parseConfig(): Promise<this>;
27
+ getConfig(): IConfig;
28
+ askToken(): Promise<string>;
29
+ parseToken(): string | null;
30
+ static defaultConfig(): IConfig;
31
+ static defaultConfigYaml(): string;
32
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Config = void 0;
7
+ const client_1 = require("@reciple/client");
8
+ const fallout_utility_1 = require("fallout-utility");
9
+ const fs_1 = require("fs");
10
+ const yaml_1 = __importDefault(require("yaml"));
11
+ const dotenv_1 = __importDefault(require("dotenv"));
12
+ const cli_1 = require("../utils/cli");
13
+ dotenv_1.default.config({
14
+ path: cli_1.flags.env ? fallout_utility_1.path.resolve(cli_1.flags.env) : fallout_utility_1.path.join(cli_1.cwd, '.env')
15
+ });
16
+ class Config {
17
+ static defaultConfigPath = fallout_utility_1.path.join(__dirname, '../../static/config.yml');
18
+ config = null;
19
+ configPath;
20
+ constructor(configPath) {
21
+ if (!configPath)
22
+ throw new Error('Config path is not defined');
23
+ this.configPath = configPath;
24
+ }
25
+ async parseConfig() {
26
+ if (!(0, fs_1.existsSync)(this.configPath)) {
27
+ let configYaml = (0, fallout_utility_1.replaceAll)(Config.defaultConfigYaml(), 'VERSION', client_1.version);
28
+ let configData = yaml_1.default.parse(configYaml);
29
+ if (configData.token === 'TOKEN') {
30
+ configData.token = await this.askToken() || 'TOKEN';
31
+ configYaml = (0, fallout_utility_1.replaceAll)(configYaml, 'token: TOKEN', `token: ${configData.token}`);
32
+ }
33
+ (0, fs_1.writeFileSync)(this.configPath, configYaml, 'utf-8');
34
+ this.config = configData;
35
+ return this;
36
+ }
37
+ this.config = yaml_1.default.parse((0, fs_1.readFileSync)(this.configPath, 'utf-8'));
38
+ return this;
39
+ }
40
+ getConfig() {
41
+ if (!this.config)
42
+ throw new Error(`Config is not parsed`);
43
+ this.config.token = this.parseToken() || 'TOKEN';
44
+ return this.config;
45
+ }
46
+ async askToken() {
47
+ return (await import('@inquirer/password')).default({
48
+ message: `Bot token`,
49
+ mask: '*',
50
+ validate: value => !value.length ? 'Enter a valid bot token' : true
51
+ });
52
+ }
53
+ parseToken() {
54
+ let token = cli_1.flags.token || this.config?.token || null;
55
+ if (!token)
56
+ return token;
57
+ const env = String(token).split(':');
58
+ if (env.length !== 2 || env[0].toLowerCase() !== 'env')
59
+ return token;
60
+ return process.env[env[1]] ?? null;
61
+ }
62
+ static defaultConfig() {
63
+ return yaml_1.default.parse(this.defaultConfigYaml());
64
+ }
65
+ static defaultConfigYaml() {
66
+ if (!(0, fs_1.existsSync)(this.defaultConfigPath))
67
+ throw new Error(`Default config file does not exists: ${this.defaultConfigPath}`);
68
+ return (0, fs_1.readFileSync)(this.defaultConfigPath, 'utf-8');
69
+ }
70
+ }
71
+ exports.Config = Config;
72
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/classes/Config.ts"],"names":[],"mappings":"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"}
package/bin/esm.d.mts ADDED
@@ -0,0 +1 @@
1
+ export * from './index.js';
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esm.mjs","sourceRoot":"","sources":["../src/esm.mts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './classes/Config';
2
+ export * from './utils/cli';
3
+ export * from './utils/logger';
4
+ export * from './utils/modules';
package/bin/exports.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./classes/Config"), exports);
18
+ __exportStar(require("./utils/cli"), exports);
19
+ __exportStar(require("./utils/logger"), exports);
20
+ __exportStar(require("./utils/modules"), exports);
21
+ //# sourceMappingURL=exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,8CAA4B;AAC5B,iDAA+B;AAC/B,kDAAgC"}
package/bin/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from '@reciple/client';
2
+ export * from './exports';
package/bin/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@reciple/client"), exports);
18
+ __exportStar(require("./exports"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,4CAA0B"}