djs-builder 0.5.8 → 0.5.10

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 (49) hide show
  1. package/.tsbuildinfo +1 -1
  2. package/dist/discord/builder/components/Pagination.d.ts +65 -0
  3. package/dist/discord/builder/components/Pagination.d.ts.map +1 -0
  4. package/dist/discord/builder/components/Pagination.js +189 -0
  5. package/dist/discord/builder/components/Pagination.js.map +1 -0
  6. package/dist/discord/builder/system/Pagination.d.ts +67 -0
  7. package/dist/discord/builder/system/Pagination.d.ts.map +1 -0
  8. package/dist/discord/builder/system/Pagination.js +223 -0
  9. package/dist/discord/builder/system/Pagination.js.map +1 -0
  10. package/dist/discord/events-handler/eventLoader.d.ts +7 -2
  11. package/dist/discord/events-handler/eventLoader.d.ts.map +1 -1
  12. package/dist/discord/events-handler/eventLoader.js +5 -3
  13. package/dist/discord/events-handler/eventLoader.js.map +1 -1
  14. package/dist/discord/events-handler/login.d.ts.map +1 -1
  15. package/dist/discord/events-handler/login.js +0 -5
  16. package/dist/discord/events-handler/login.js.map +1 -1
  17. package/dist/discord/events-handler/prefix-responder.d.ts.map +1 -1
  18. package/dist/discord/events-handler/prefix-responder.js +1 -1
  19. package/dist/discord/events-handler/prefix-responder.js.map +1 -1
  20. package/dist/discord/events-handler/slash-responder.js +1 -1
  21. package/dist/discord/events-handler/slash-responder.js.map +1 -1
  22. package/dist/discord/events-handler/starter.d.ts.map +1 -1
  23. package/dist/discord/events-handler/starter.js +36 -0
  24. package/dist/discord/events-handler/starter.js.map +1 -1
  25. package/dist/discord/functions/terminal.d.ts.map +1 -1
  26. package/dist/discord/functions/terminal.js +4 -3
  27. package/dist/discord/functions/terminal.js.map +1 -1
  28. package/dist/discord/types/starter.d.ts +15 -0
  29. package/dist/discord/types/starter.d.ts.map +1 -1
  30. package/dist/discord/utils.d.ts +2 -1
  31. package/dist/discord/utils.d.ts.map +1 -1
  32. package/dist/discord/utils.js +3 -1
  33. package/dist/discord/utils.js.map +1 -1
  34. package/dist/index.d.ts +2 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/lib/discord/builder/system/Pagination.ts +321 -0
  39. package/lib/discord/events-handler/eventLoader.ts +12 -4
  40. package/lib/discord/events-handler/login.ts +0 -6
  41. package/lib/discord/events-handler/prefix-responder.ts +1 -2
  42. package/lib/discord/events-handler/slash-responder.ts +1 -1
  43. package/lib/discord/events-handler/starter.ts +37 -3
  44. package/lib/discord/functions/terminal.ts +5 -5
  45. package/lib/discord/types/starter.ts +19 -2
  46. package/lib/discord/utils.ts +2 -1
  47. package/lib/index.ts +2 -2
  48. package/package.json +1 -1
  49. package/index.js +0 -0
@@ -1,14 +1,44 @@
1
- import { StarterOptions, StarterInterface } from '../types/utils';
1
+ import { StarterOptions, StarterInterface, } from '../types/utils';
2
2
  import { mongoConnect, getDb, verseConnect } from '../functions/utils';
3
3
  const wait = require('node:timers/promises').setTimeout;
4
- import { login } from './login';
4
+ import { botData, login } from './login';
5
5
  import { AntiCrash } from '../functions/anticrash';
6
+ import { loadEvents } from './events';
7
+ import { ShardingManager, ShardClientUtil } from 'discord.js';
8
+ import path from 'path';
9
+ import fs from 'fs';
10
+ import { logError, logInfo, logSuccess } from '../utils';
6
11
 
7
12
  export class Starter implements StarterInterface {
8
13
  async start(djs: any, options: StarterOptions): Promise<any> {
9
14
  let mongoDb;
10
15
  let verseDb;
11
16
 
17
+ if (options.sharding?.enable) {
18
+ try {
19
+ const packageJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), 'package.json'), 'utf-8'));
20
+ const mainFile = packageJson.main || 'index.js';
21
+
22
+ const manager = new ShardingManager(path.join(process.cwd(), mainFile), {
23
+ totalShards: options.sharding.totalShards || 'auto',
24
+ mode: options.sharding.mode || 'process',
25
+ shardList: options.sharding.shardList || 'auto',
26
+ respawn: options.sharding.respawn !== undefined ? options.sharding.respawn : true,
27
+ silent: options.sharding.silent || false,
28
+ shardArgs: options.sharding.shardArgs || [],
29
+ token: options.sharding.token || options.bot?.token,
30
+ execArgv: options.sharding.execArgv || process.execArgv,
31
+ });
32
+
33
+ manager.on('shardCreate', shard => logInfo(`Launched shard ${shard.id}`));
34
+ await manager.spawn();
35
+ djs.shard = manager;
36
+ djs.shardClient = ShardClientUtil.singleton(djs, options?.sharding?.mode || 'process');
37
+ logSuccess('Sharding setup complete and shards spawned.');
38
+ } catch (error: any) {
39
+ logError('Failed to setup sharding', error);
40
+ }
41
+ }
12
42
  try {
13
43
  if (options.bot?.Database?.mongo) {
14
44
  await mongoConnect(options.bot.Database.mongo.mongoURI, options.bot.Database.mongo.dbName || 'djsbuilder');
@@ -16,7 +46,11 @@ export class Starter implements StarterInterface {
16
46
  }
17
47
  if (options.bot?.Database?.verse) {
18
48
  verseDb = await verseConnect(options.bot.Database.verse);
19
- }
49
+ }
50
+ if (options.events) {
51
+ await loadEvents(djs, options.events);
52
+ botData.set('eventsPath', options.events.path);
53
+ }
20
54
  if (options.bot) {
21
55
  await login(djs, options);
22
56
  }
@@ -18,7 +18,6 @@ async function showLoadingBar(duration: number) {
18
18
  process.stdout.write('\r'.padEnd(50) + '\r');
19
19
  }
20
20
 
21
- // Main function to show terminal logs
22
21
  export async function terminalLogs(client: any, bot: any): Promise<void> {
23
22
  const { user, prefixSize = 0, slashSize = 0, eventSize = 0 } = client;
24
23
 
@@ -97,16 +96,17 @@ export async function terminalLogs(client: any, bot: any): Promise<void> {
97
96
  });
98
97
  }
99
98
 
100
- printFigletText(user.username, '3D-ASCII', colors, 100);
101
99
 
102
100
  const secondText: string = 'djs-builder';
103
101
  const secondFont: string = 'Small Slant';
104
102
  const secondColor: string = colors[2];
105
103
  const horizontalPadding: number = 50;
106
104
  const verticalPadding: number = 2000;
107
-
108
- printFigletText(secondText, secondFont, [secondColor], 50, horizontalPadding, -verticalPadding);
109
-
105
+ if (bot.logs.waterMark) {
106
+ printFigletText(secondText, secondFont, [secondColor], 50, horizontalPadding, -verticalPadding);
107
+ printFigletText(user.username, '3D-ASCII', colors, 100);
108
+ }
109
+
110
110
  await new Promise(resolve => setTimeout(resolve, 2000));
111
111
 
112
112
  const botStatesTable = new Table({
@@ -4,12 +4,13 @@ export interface BotOptions {
4
4
  token?: string;
5
5
  logs?: {
6
6
  devLogs?: {
7
- enable: boolean
7
+ enable: boolean;
8
8
  pathToWatch: any;
9
9
  webhookURL: string;
10
10
  mention?: string;
11
11
  };
12
- terminal?: boolean
12
+ terminal?: boolean;
13
+ waterMark?: boolean;
13
14
  };
14
15
  name?: string;
15
16
  avatar?: string;
@@ -51,6 +52,7 @@ export interface PrefixOptions {
51
52
  serverId: string;
52
53
  prefix: string;
53
54
  }[];
55
+ similarity?: boolean;
54
56
  logsId?: string;
55
57
  }
56
58
 
@@ -115,8 +117,23 @@ export interface Command {
115
117
  method?: (...args: any[]) => void;
116
118
  }
117
119
 
120
+ export type ShardingManagerMode = 'process' | 'worker';
121
+
122
+ export interface ShardingManagerOptions {
123
+ enable?: boolean;
124
+ totalShards?: number | 'auto';
125
+ shardList?: readonly number[] | 'auto';
126
+ mode?: ShardingManagerMode;
127
+ respawn?: boolean;
128
+ silent?: boolean;
129
+ shardArgs?: readonly string[];
130
+ token?: string;
131
+ execArgv?: readonly string[];
132
+ }
133
+
118
134
  export interface StarterOptions {
119
135
  bot: BotOptions;
136
+ sharding?: ShardingManagerOptions;
120
137
  slash?: SlashOptions;
121
138
  prefix?: PrefixOptions;
122
139
  events?: EventsOptions;
@@ -8,7 +8,8 @@ import { loadPrefix, handleMessageCreate } from "./events-handler/prefix-respond
8
8
  import { registerSlashCommands } from "./events-handler/slash-register";
9
9
  import { loadSlash } from "./events-handler/slash-responder";
10
10
  import { logError, logInfo, logSuccess, logWarning } from "./functions/logger";
11
+ import { Pagination } from "./builder/system/Pagination";
11
12
  import { loadEvents, withRetry, processEventFile, processDirectory, limitConcurrency, countEventFiles } from "./events-handler/events";
12
13
  export { Starter, ButtonManager, MenuManager, PermissionChecker, slashLoader, prefixLoader, eventLoader, readCommands, loadEvents,
13
14
  loadSlash, loadPrefix, handleMessageCreate, processDirectory, countEventFiles, limitConcurrency, withRetry, registerSlashCommands,
14
- processEventFile, logError, logInfo, logSuccess, logWarning }
15
+ processEventFile, logError, logInfo, logSuccess, logWarning, Pagination }
package/lib/index.ts CHANGED
@@ -29,12 +29,12 @@ fetch("https://registry.npmjs.com/-/v1/search?text=djs-builder")
29
29
 
30
30
  import { Starter, ButtonManager, MenuManager, PermissionChecker, slashLoader, prefixLoader, eventLoader, readCommands, loadEvents,
31
31
  loadSlash, loadPrefix, handleMessageCreate, processDirectory, countEventFiles, limitConcurrency, withRetry, registerSlashCommands,
32
- processEventFile, logError, logInfo, logSuccess, logWarning } from "./discord/utils";
32
+ processEventFile, logError, logInfo, logSuccess, logWarning, Pagination } from "./discord/utils";
33
33
 
34
34
  export { Starter, ButtonManager, MenuManager, PermissionChecker, slashLoader, prefixLoader, eventLoader, readCommands, loadEvents,
35
35
  loadSlash, loadPrefix, handleMessageCreate, processDirectory, countEventFiles, limitConcurrency, withRetry, registerSlashCommands,
36
36
  processEventFile , logError, logInfo, logSuccess, logWarning};
37
37
  export default { Starter, ButtonManager, MenuManager, PermissionChecker, slashLoader, prefixLoader, eventLoader, readCommands, loadEvents,
38
38
  loadSlash, loadPrefix, handleMessageCreate, processDirectory, countEventFiles, limitConcurrency, withRetry, registerSlashCommands,
39
- processEventFile, logError, logInfo, logSuccess, logWarning };
39
+ processEventFile, logError, logInfo, logSuccess, logWarning, Pagination };
40
40
  export * from './discord/types/starter';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "djs-builder",
3
- "version": "0.5.8",
3
+ "version": "0.5.10",
4
4
  "description": "Discord.js bot builder. Supports Ts and Js.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/index.js DELETED
File without changes