create-reciple 9.5.1 → 9.6.1

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.
package/README.md CHANGED
@@ -39,8 +39,6 @@ pnpm create reciple@latest
39
39
  ```
40
40
 
41
41
  ## Templates
42
- - Javascript (CommonJS)
43
42
  - Javascript (ES Modules)
44
- - Typescript (CommonJS)
45
43
  - Typescript (ES Modules)
46
44
 
@@ -35,6 +35,7 @@ export const packageManagers = [
35
35
  export const packages = {
36
36
  'TYPES_NODE': packageJson.devDependencies['@types/node'],
37
37
  'RECIPLE_CORE': packageJson.dependencies['@reciple/core'],
38
+ 'RECIPLE_DECORATORS': packageJson.dependencies['@reciple/decorators'],
38
39
  'TYPESCRIPT': packageJson.devDependencies['typescript'],
39
40
  'RIMRAF': packageJson.devDependencies['rimraf'],
40
41
  'RECIPLE': packageJson.dependencies['reciple'],
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7G,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAuE;IAC/F;QACI,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,KAAK;KACf;IACD;QACI,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,MAAM;KAChB;IACD;QACI,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,MAAM;KAChB;IACD;QACI,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,KAAK;KACf;IACD;QACI,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,MAAM;KAChB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC5C,YAAY,EAAE,WAAW,CAAC,eAAgB,CAAC,aAAa,CAAE;IAC1D,cAAc,EAAE,WAAW,CAAC,YAAa,CAAC,eAAe,CAAE;IAC3D,YAAY,EAAE,WAAW,CAAC,eAAgB,CAAC,YAAY,CAAE;IACzD,QAAQ,EAAE,WAAW,CAAC,eAAgB,CAAC,QAAQ,CAAE;IACjD,SAAS,EAAE,WAAW,CAAC,YAAa,CAAC,SAAS,CAAE;IAChD,WAAW,EAAE,WAAW,CAAC,YAAa,CAAC,YAAY,CAAE;IACrD,SAAS,EAAE,WAAW,CAAC,eAAgB,CAAC,SAAS,CAAE;CACtD,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAgH;IACnJ,KAAK,EAAE;QACH,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,aAAa;QAC5B,eAAe,EAAE,eAAe;KACnC;IACD,MAAM,EAAE;QACJ,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,cAAc;QAC7B,aAAa,EAAE,UAAU;QACzB,eAAe,EAAE,aAAa;KACjC;IACD,MAAM,EAAE;QACJ,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,MAAM;QACrB,aAAa,EAAE,UAAU;QACzB,eAAe,EAAE,aAAa;KACjC;IACD,KAAK,EAAE;QACH,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,SAAS;QACxB,eAAe,EAAE,YAAY;KAChC;CACJ,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7G,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAuE;IAC/F;QACI,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,KAAK;KACf;IACD;QACI,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,MAAM;KAChB;IACD;QACI,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,MAAM;KAChB;IACD;QACI,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,KAAK;KACf;IACD;QACI,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,MAAM;KAChB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC5C,YAAY,EAAE,WAAW,CAAC,eAAgB,CAAC,aAAa,CAAE;IAC1D,cAAc,EAAE,WAAW,CAAC,YAAa,CAAC,eAAe,CAAE;IAC3D,oBAAoB,EAAE,WAAW,CAAC,YAAa,CAAC,qBAAqB,CAAE;IACvE,YAAY,EAAE,WAAW,CAAC,eAAgB,CAAC,YAAY,CAAE;IACzD,QAAQ,EAAE,WAAW,CAAC,eAAgB,CAAC,QAAQ,CAAE;IACjD,SAAS,EAAE,WAAW,CAAC,YAAa,CAAC,SAAS,CAAE;IAChD,WAAW,EAAE,WAAW,CAAC,YAAa,CAAC,YAAY,CAAE;IACrD,SAAS,EAAE,WAAW,CAAC,eAAgB,CAAC,SAAS,CAAE;CACtD,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAgH;IACnJ,KAAK,EAAE;QACH,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,aAAa;QAC5B,eAAe,EAAE,eAAe;KACnC;IACD,MAAM,EAAE;QACJ,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,cAAc;QAC7B,aAAa,EAAE,UAAU;QACzB,eAAe,EAAE,aAAa;KACjC;IACD,MAAM,EAAE;QACJ,YAAY,EAAE,UAAU;QACxB,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,MAAM;QACrB,aAAa,EAAE,UAAU;QACzB,eAAe,EAAE,aAAa;KACjC;IACD,KAAK,EAAE;QACH,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,aAAa;QAC5B,aAAa,EAAE,SAAS;QACxB,eAAe,EAAE,YAAY;KAChC;CACJ,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "create-reciple",
3
3
  "description": "A Reciple Discord bot project builder",
4
4
  "license": "GPL-3.0",
5
- "version": "9.5.1",
5
+ "version": "9.6.1",
6
6
  "type": "module",
7
7
  "types": "./dist/index.d.ts",
8
8
  "module": "./dist/index.js",
@@ -37,7 +37,8 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@clack/prompts": "^0.7.0",
40
- "@reciple/core": "^9.3.1",
40
+ "@reciple/core": "^9.4.0",
41
+ "@reciple/decorators": "^9.1.0",
41
42
  "@reciple/utils": "^9.3.1",
42
43
  "commander": "^12.1.0",
43
44
  "compressing": "^1.10.1",
@@ -46,7 +47,7 @@
46
47
  "fallout-utility": "^2.9.1",
47
48
  "ora": "^8.0.1",
48
49
  "package-json": "^10.0.0",
49
- "reciple": "^9.3.1"
50
+ "reciple": "^9.4.0"
50
51
  },
51
52
  "devDependencies": {
52
53
  "@types/node": "^20.14.9",
@@ -54,5 +55,5 @@
54
55
  "rimraf": "^5.0.7",
55
56
  "typescript": "^5.5.3"
56
57
  },
57
- "gitHead": "43213d7012445a37502ec68517c4674f3f30f7f2"
58
+ "gitHead": "109ea8a8be065d1c25ec54bc7fc1ade1574ecadc"
58
59
  }
@@ -10,6 +10,7 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@reciple/core": "RECIPLE_CORE",
13
+ "@reciple/decorators": "RECIPLE_DECORATORS",
13
14
  "discord.js": "DISCORDJS",
14
15
  "reciple": "RECIPLE"
15
16
  },
@@ -1,57 +1,46 @@
1
- import { AnyCommandExecuteData, AnyCommandResolvable, CommandType, ContextMenuCommandBuilder, MessageCommandBuilder, RecipleModuleData, SlashCommandBuilder } from "reciple";
2
-
3
- export class PingCommand implements RecipleModuleData {
4
- /**
5
- * The module commands.
6
- */
7
- public commands: AnyCommandResolvable[] = [
8
- new SlashCommandBuilder()
9
- .setName('ping')
10
- .setDescription('Replies with pong!')
11
- .setExecute(data => this.handleCommandExecute(data)),
12
-
13
- new ContextMenuCommandBuilder()
14
- .setName('ping')
15
- .setType('Message')
16
- .setExecute(data => this.handleCommandExecute(data)),
17
-
18
- new MessageCommandBuilder()
19
- .setName('ping')
20
- .setDescription('Replies with pong!')
21
- .setExecute(data => this.handleCommandExecute(data))
22
- ];
23
-
24
- /**
25
- * Executed when module is started (Bot is not logged in).
26
- */
27
- async onStart(): Promise<boolean> {
28
- return true;
29
- }
30
-
31
- /**
32
- * Executes when the module is loaded (Bot is logged in).
33
- */
34
- async onLoad(): Promise<void> {}
35
-
36
- /**
37
- * Executes when the module is unloaded (Bot is pre log out).
38
- */
39
- async onUnload(): Promise<void> {}
40
-
41
- /**
42
- * Called by the command builder when a command is executed.
43
- */
44
- async handleCommandExecute(data: AnyCommandExecuteData): Promise<void> {
45
- switch (data.type) {
46
- case CommandType.ContextMenuCommand:
47
- case CommandType.SlashCommand:
48
- await data.interaction.reply('Pong!');
49
- return;
50
- case CommandType.MessageCommand:
51
- await data.message.reply('Pong!');
52
- return;
53
- }
54
- }
55
- }
56
-
57
- export default new PingCommand();
1
+ import { setContextMenuCommand, setMessageCommand, setRecipleModule, setRecipleModuleLoad, setRecipleModuleStart, setRecipleModuleUnload, setSlashCommand } from '@reciple/decorators';
2
+ import { ApplicationCommandType } from 'discord.js';
3
+ import { AnyCommandExecuteData, CommandType, RecipleModuleData } from "reciple";
4
+
5
+ @setRecipleModule()
6
+ export class PingCommand implements RecipleModuleData {
7
+ /**
8
+ * Executed when module is started (Bot is not logged in).
9
+ */
10
+ @setRecipleModuleStart()
11
+ async onStart(): Promise<boolean> {
12
+ return true;
13
+ }
14
+
15
+ /**
16
+ * Executes when the module is loaded (Bot is logged in).
17
+ */
18
+ @setRecipleModuleLoad()
19
+ async onLoad(): Promise<void> {}
20
+
21
+ /**
22
+ * Executes when the module is unloaded (Bot is pre log out).
23
+ */
24
+ @setRecipleModuleUnload()
25
+ async onUnload(): Promise<void> {}
26
+
27
+ /**
28
+ * Sets the commands
29
+ */
30
+ @setContextMenuCommand({ name: 'ping', type: ApplicationCommandType.Message })
31
+ @setMessageCommand({ name: 'ping', description: 'Replies with pong!' })
32
+ @setSlashCommand({ name: 'ping', description: 'Replies with pong!' })
33
+ async handleCommandExecute(data: AnyCommandExecuteData): Promise<void> {
34
+ switch (data.type) {
35
+ case CommandType.ContextMenuCommand:
36
+ case CommandType.SlashCommand:
37
+ await data.interaction.reply('Pong!');
38
+ return;
39
+ case CommandType.MessageCommand:
40
+ await data.message.reply('Pong!');
41
+ return;
42
+ }
43
+ }
44
+ }
45
+
46
+ export default new PingCommand();
@@ -1,42 +1,37 @@
1
- import { GuildMember } from "discord.js";
2
- import { RecipleModuleData, RecipleModuleLoadData, RecipleModuleUnloadData } from 'reciple';
3
-
4
- export class WelcomeEvent implements RecipleModuleData {
5
- constructor() {
6
- // Make sure `handleWelcomeEvent` is bound to `this`
7
- this.handleWelcomeEvent = this.handleWelcomeEvent.bind(this);
8
- }
9
-
10
- /**
11
- * Executed when module is started (Bot is not logged in).
12
- */
13
- async onStart(): Promise<boolean> {
14
- return true;
15
- }
16
-
17
- /**
18
- * Executes when the module is loaded (Bot is logged in).
19
- */
20
- async onLoad({ client }: RecipleModuleLoadData): Promise<void> {
21
- // Add the listener to the client
22
- client.on('guildMemberAdd', this.handleWelcomeEvent);
23
- }
24
-
25
- /**
26
- * Executes when the module is unloaded (Bot is pre log out).
27
- */
28
- async onUnload({ client }: RecipleModuleUnloadData): Promise<void> {
29
- // Properly remove the listener from the client
30
- client.removeListener('guildMemberAdd', this.handleWelcomeEvent);
31
- }
32
-
33
- /**
34
- * Called when a user joins the server.
35
- */
36
- async handleWelcomeEvent(member: GuildMember): Promise<void> {
37
- await member.send(`Welcome to **${member.guild.name}** server!`)
38
- .catch(() => null);
39
- }
40
- }
41
-
42
- export default new WelcomeEvent();
1
+ import { setClientEvent, setRecipleModule, setRecipleModuleLoad, setRecipleModuleStart, setRecipleModuleUnload } from '@reciple/decorators';
2
+ import { GuildMember } from "discord.js";
3
+ import { RecipleModuleData } from 'reciple';
4
+
5
+ @setRecipleModule()
6
+ export class WelcomeEvent implements RecipleModuleData {
7
+ /**
8
+ * Executed when module is started (Bot is not logged in).
9
+ */
10
+ @setRecipleModuleStart()
11
+ async onStart(): Promise<boolean> {
12
+ return true;
13
+ }
14
+
15
+ /**
16
+ * Executes when the module is loaded (Bot is logged in).
17
+ */
18
+ @setRecipleModuleLoad()
19
+ async onLoad(): Promise<void> {}
20
+
21
+ /**
22
+ * Executes when the module is unloaded (Bot is pre log out).
23
+ */
24
+ @setRecipleModuleUnload()
25
+ async onUnload(): Promise<void> {}
26
+
27
+ /**
28
+ * Called when a user joins the server.
29
+ */
30
+ @setClientEvent('guildMemberAdd')
31
+ async handleWelcomeEvent(member: GuildMember): Promise<void> {
32
+ await member.send(`Welcome to **${member.guild.name}** server!`)
33
+ .catch(() => null);
34
+ }
35
+ }
36
+
37
+ export default new WelcomeEvent();
@@ -1,17 +1,19 @@
1
- {
2
- "include": ["./src/**/*"],
3
- "compilerOptions": {
4
- "rootDir": "./src",
5
- "outDir": "./modules",
6
- "target": "ESNext",
7
- "module": "NodeNext",
8
- "moduleResolution": "NodeNext",
9
- "esModuleInterop": true,
10
- "skipLibCheck": true,
11
- "sourceMap": true,
12
- "strict": true,
13
- "paths": {
14
- "@/*": ["./src/*"]
15
- }
16
- }
1
+ {
2
+ "include": ["./src/**/*"],
3
+ "compilerOptions": {
4
+ "rootDir": "./src",
5
+ "outDir": "./modules",
6
+ "target": "ESNext",
7
+ "module": "NodeNext",
8
+ "moduleResolution": "NodeNext",
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "sourceMap": true,
12
+ "strict": true,
13
+ "experimentalDecorators": true,
14
+ "emitDecoratorMetadata": true,
15
+ "paths": {
16
+ "@/*": ["./src/*"]
17
+ }
18
+ }
17
19
  }