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.
- package/.tsbuildinfo +1 -1
- package/dist/discord/builder/components/Pagination.d.ts +65 -0
- package/dist/discord/builder/components/Pagination.d.ts.map +1 -0
- package/dist/discord/builder/components/Pagination.js +189 -0
- package/dist/discord/builder/components/Pagination.js.map +1 -0
- package/dist/discord/builder/system/Pagination.d.ts +67 -0
- package/dist/discord/builder/system/Pagination.d.ts.map +1 -0
- package/dist/discord/builder/system/Pagination.js +223 -0
- package/dist/discord/builder/system/Pagination.js.map +1 -0
- package/dist/discord/events-handler/eventLoader.d.ts +7 -2
- package/dist/discord/events-handler/eventLoader.d.ts.map +1 -1
- package/dist/discord/events-handler/eventLoader.js +5 -3
- package/dist/discord/events-handler/eventLoader.js.map +1 -1
- package/dist/discord/events-handler/login.d.ts.map +1 -1
- package/dist/discord/events-handler/login.js +0 -5
- package/dist/discord/events-handler/login.js.map +1 -1
- package/dist/discord/events-handler/prefix-responder.d.ts.map +1 -1
- package/dist/discord/events-handler/prefix-responder.js +1 -1
- package/dist/discord/events-handler/prefix-responder.js.map +1 -1
- package/dist/discord/events-handler/slash-responder.js +1 -1
- package/dist/discord/events-handler/slash-responder.js.map +1 -1
- package/dist/discord/events-handler/starter.d.ts.map +1 -1
- package/dist/discord/events-handler/starter.js +36 -0
- package/dist/discord/events-handler/starter.js.map +1 -1
- package/dist/discord/functions/terminal.d.ts.map +1 -1
- package/dist/discord/functions/terminal.js +4 -3
- package/dist/discord/functions/terminal.js.map +1 -1
- package/dist/discord/types/starter.d.ts +15 -0
- package/dist/discord/types/starter.d.ts.map +1 -1
- package/dist/discord/utils.d.ts +2 -1
- package/dist/discord/utils.d.ts.map +1 -1
- package/dist/discord/utils.js +3 -1
- package/dist/discord/utils.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/lib/discord/builder/system/Pagination.ts +321 -0
- package/lib/discord/events-handler/eventLoader.ts +12 -4
- package/lib/discord/events-handler/login.ts +0 -6
- package/lib/discord/events-handler/prefix-responder.ts +1 -2
- package/lib/discord/events-handler/slash-responder.ts +1 -1
- package/lib/discord/events-handler/starter.ts +37 -3
- package/lib/discord/functions/terminal.ts +5 -5
- package/lib/discord/types/starter.ts +19 -2
- package/lib/discord/utils.ts +2 -1
- package/lib/index.ts +2 -2
- package/package.json +1 -1
- package/index.js +0 -0
|
@@ -1,14 +1,44 @@
|
|
|
1
|
-
import { StarterOptions, StarterInterface
|
|
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
|
-
|
|
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;
|
package/lib/discord/utils.ts
CHANGED
|
@@ -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
package/index.js
DELETED
|
File without changes
|