djs-builder 0.4.10 → 0.4.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.
- package/.tsbuildinfo +1 -1
- package/dist/discord/events-handler/eventLoader.d.ts +7 -0
- package/dist/discord/events-handler/eventLoader.d.ts.map +1 -0
- package/dist/discord/events-handler/eventLoader.js +145 -0
- package/dist/discord/events-handler/eventLoader.js.map +1 -0
- package/dist/discord/events-handler/events.d.ts.map +1 -1
- package/dist/discord/events-handler/events.js +1 -1
- package/dist/discord/events-handler/events.js.map +1 -1
- package/dist/discord/events-handler/login.d.ts.map +1 -1
- package/dist/discord/events-handler/login.js +6 -1
- package/dist/discord/events-handler/login.js.map +1 -1
- package/dist/discord/events-handler/prefixLoader.d.ts +5 -1
- package/dist/discord/events-handler/prefixLoader.d.ts.map +1 -1
- package/dist/discord/events-handler/prefixLoader.js +38 -24
- package/dist/discord/events-handler/prefixLoader.js.map +1 -1
- package/dist/discord/events-handler/slash-register.d.ts.map +1 -1
- package/dist/discord/events-handler/slash-register.js +0 -3
- package/dist/discord/events-handler/slash-register.js.map +1 -1
- package/dist/discord/events-handler/slashLoader.d.ts +5 -1
- package/dist/discord/events-handler/slashLoader.d.ts.map +1 -1
- package/dist/discord/events-handler/slashLoader.js +57 -11
- package/dist/discord/events-handler/slashLoader.js.map +1 -1
- package/dist/discord/events-handler/starter.d.ts.map +1 -1
- package/dist/discord/events-handler/starter.js +0 -4
- package/dist/discord/events-handler/starter.js.map +1 -1
- package/dist/discord/utils.d.ts +4 -1
- package/dist/discord/utils.d.ts.map +1 -1
- package/dist/discord/utils.js +7 -1
- package/dist/discord/utils.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/lib/discord/events-handler/eventLoader.ts +131 -0
- package/lib/discord/events-handler/events.ts +1 -1
- package/lib/discord/events-handler/login.ts +7 -1
- package/lib/discord/events-handler/prefixLoader.ts +54 -0
- package/lib/discord/events-handler/slash-register.ts +1 -4
- package/lib/discord/events-handler/slashLoader.ts +71 -0
- package/lib/discord/events-handler/starter.ts +0 -4
- package/lib/discord/utils.ts +5 -1
- package/lib/index.ts +3 -4
- package/package.json +2 -1
- package/lib/discord/events-handler/events loader.ts +0 -21
|
@@ -4,7 +4,7 @@ import { Routes } from 'discord-api-types/v10';
|
|
|
4
4
|
import { readdir } from 'fs/promises';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { SlashOptions } from '../types/starter';
|
|
7
|
-
import {
|
|
7
|
+
import { logError } from '../functions/logger';
|
|
8
8
|
|
|
9
9
|
export async function registerSlashCommands(client: any, token: string, slash: SlashOptions): Promise<Collection<string, any>> {
|
|
10
10
|
if (!token) {
|
|
@@ -56,20 +56,17 @@ export async function registerSlashCommands(client: any, token: string, slash: S
|
|
|
56
56
|
if (slash.global && !slash.serverId) {
|
|
57
57
|
const slashCommandArray = Array.from(slashCommands.values()).map(command => command.data.toJSON());
|
|
58
58
|
await rest.put(Routes.applicationCommands((client.user?.id || '')), { body: slashCommandArray, headers: { Authorization: `Bot ${token}` } });
|
|
59
|
-
logSuccess('Successfully registered global slash commands.');
|
|
60
59
|
} else if (!slash.global && slash.serverId) {
|
|
61
60
|
const guild = client.guilds.cache.get(slash.serverId) as Guild | undefined;
|
|
62
61
|
if (guild) {
|
|
63
62
|
const slashCommandArray = Array.from(slashCommands.values()).map(command => command.data.toJSON());
|
|
64
63
|
await rest.put(Routes.applicationGuildCommands((client.user?.id || ''), guild.id), { body: slashCommandArray, headers: { Authorization: `Bot ${token}` } });
|
|
65
|
-
logSuccess(`Successfully registered guild slash commands for server ID: ${slash.serverId}`);
|
|
66
64
|
} else {
|
|
67
65
|
logError(`Guild with ID ${slash.serverId} not found.`);
|
|
68
66
|
}
|
|
69
67
|
} else {
|
|
70
68
|
const slashCommandArray = Array.from(slashCommands.values()).map(command => command.data.toJSON());
|
|
71
69
|
await rest.put(Routes.applicationCommands((client.user?.id || '')), { body: slashCommandArray, headers: { Authorization: `Bot ${token}` } });
|
|
72
|
-
logSuccess('Successfully registered global slash commands.');
|
|
73
70
|
}
|
|
74
71
|
} catch (error: any) {
|
|
75
72
|
logError('Error registering slash commands:');
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Collection } from 'discord.js';
|
|
2
|
+
import { REST } from '@discordjs/rest';
|
|
3
|
+
import { Routes } from 'discord-api-types/v10';
|
|
4
|
+
import { readdir } from 'fs/promises';
|
|
5
|
+
import { resolve, extname } from 'path';
|
|
6
|
+
import { botData } from './login';
|
|
7
|
+
import { logError, logInfo } from '../functions/logger';
|
|
8
|
+
|
|
9
|
+
const validExtensions = ['.js', '.ts'];
|
|
10
|
+
|
|
11
|
+
export async function slashLoader(client: any): Promise<{ commands: Collection<string, any>; success: boolean }> {
|
|
12
|
+
try {
|
|
13
|
+
const slashPath = botData.get('slashCommandPath') as string;
|
|
14
|
+
const token = botData.get('botToken') as string;
|
|
15
|
+
|
|
16
|
+
const commandPath = resolve(process.cwd(), slashPath);
|
|
17
|
+
|
|
18
|
+
const getAllFiles = async (dirPath: string): Promise<string[]> => {
|
|
19
|
+
let files: string[] = [];
|
|
20
|
+
const dirents = await readdir(dirPath, { withFileTypes: true });
|
|
21
|
+
|
|
22
|
+
for (const dirent of dirents) {
|
|
23
|
+
const res = resolve(dirPath, dirent.name);
|
|
24
|
+
if (dirent.isDirectory()) {
|
|
25
|
+
files = files.concat(await getAllFiles(res));
|
|
26
|
+
} else if (validExtensions.includes(extname(dirent.name))) {
|
|
27
|
+
files.push(res);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return files;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const files = await getAllFiles(commandPath);
|
|
34
|
+
if (files.length === 0) {
|
|
35
|
+
logInfo(`No command files found in directory \`${commandPath}\`.`);
|
|
36
|
+
return { commands: new Collection<string, any>(), success: false };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
for (const file of files) {
|
|
40
|
+
delete require.cache[require.resolve(file)];
|
|
41
|
+
logInfo(`Unlinked cached module: ${file}`);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const newCommands = new Collection<string, any>();
|
|
45
|
+
for (const file of files) {
|
|
46
|
+
try {
|
|
47
|
+
const command = require(file);
|
|
48
|
+
if (command.data) {
|
|
49
|
+
client.slashCommands.set(command.data.name, command);
|
|
50
|
+
newCommands.set(command.data.name, command);
|
|
51
|
+
}
|
|
52
|
+
} catch (error: any) {
|
|
53
|
+
logError(`Error re-importing file: ${file}`);
|
|
54
|
+
logError(error.message);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const rest = new REST({ version: '10' }).setToken(token);
|
|
59
|
+
const slashCommandArray = Array.from(newCommands.values()).map((command: any) => command.data.toJSON());
|
|
60
|
+
|
|
61
|
+
await rest.put(Routes.applicationCommands(client.user?.id || ''), { body: [] });
|
|
62
|
+
await rest.put(Routes.applicationCommands(client.user?.id || ''), { body: slashCommandArray });
|
|
63
|
+
|
|
64
|
+
return { commands: newCommands, success: true };
|
|
65
|
+
} catch (error: any) {
|
|
66
|
+
logError('Error reloading slash commands:');
|
|
67
|
+
logError(error.message);
|
|
68
|
+
console.error(error);
|
|
69
|
+
return { commands: new Collection<string, any>(), success: false };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { StarterOptions, StarterInterface } from '../types/utils';
|
|
2
2
|
import { mongoConnect, getDb, verseConnect } from '../functions/utils';
|
|
3
|
-
import { loadEvents } from './events';
|
|
4
3
|
const wait = require('node:timers/promises').setTimeout;
|
|
5
4
|
import { login } from './login';
|
|
6
5
|
import { AntiCrash } from '../functions/anticrash';
|
|
@@ -18,9 +17,6 @@ export class Starter implements StarterInterface {
|
|
|
18
17
|
if (options.bot?.Database?.verse) {
|
|
19
18
|
verseDb = await verseConnect(options.bot.Database.verse);
|
|
20
19
|
}
|
|
21
|
-
if (options.events) {
|
|
22
|
-
await loadEvents(djs, options.events);
|
|
23
|
-
}
|
|
24
20
|
if (options.anticrash?.enable) {
|
|
25
21
|
await AntiCrash(djs, options)
|
|
26
22
|
}
|
package/lib/discord/utils.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { Starter } from "./events-handler/starter";
|
|
2
2
|
import { ButtonManager, MenuManager, PermissionChecker } from './builder/utils';
|
|
3
|
-
|
|
3
|
+
import { slashLoader } from "./events-handler/slashLoader";
|
|
4
|
+
import { prefixLoader } from "./events-handler/prefixLoader";
|
|
5
|
+
import { eventLoader } from "./events-handler/eventLoader";
|
|
6
|
+
|
|
7
|
+
export { Starter, ButtonManager, MenuManager, PermissionChecker, slashLoader, prefixLoader, eventLoader }
|
package/lib/index.ts
CHANGED
|
@@ -27,7 +27,6 @@ fetch("https://registry.npmjs.com/-/v1/search?text=djs-builder")
|
|
|
27
27
|
.catch((e: any) => {});
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
import { Starter, ButtonManager, MenuManager, PermissionChecker } from "./discord/utils";
|
|
31
|
-
|
|
32
|
-
export { Starter, ButtonManager, MenuManager, PermissionChecker };
|
|
33
|
-
export default { Starter, ButtonManager, MenuManager, PermissionChecker };
|
|
30
|
+
import { Starter, ButtonManager, MenuManager, PermissionChecker, slashLoader, prefixLoader, eventLoader} from "./discord/utils";
|
|
31
|
+
export { Starter, ButtonManager, MenuManager, PermissionChecker, slashLoader, prefixLoader, eventLoader };
|
|
32
|
+
export default { Starter, ButtonManager, MenuManager, PermissionChecker, slashLoader, prefixLoader, eventLoader };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "djs-builder",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.11",
|
|
4
4
|
"description": "Discord.js bot builder. Supports Ts and Js.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"cli-table": "^0.3.11",
|
|
34
34
|
"colorette": "^2.0.20",
|
|
35
35
|
"discord.js": "^14.15.3",
|
|
36
|
+
"djs-builder": "^0.4.10",
|
|
36
37
|
"mongodb": "^6.5.0",
|
|
37
38
|
"verse.db": "^2.0.4"
|
|
38
39
|
},
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { logSuccess, logError, logInfo } from '../functions/logger';
|
|
2
|
-
import { EventsOptions } from '../types/starter';
|
|
3
|
-
import { loadEvents } from './events';
|
|
4
|
-
export async function eventsLoader(client: any, eventsOptions: EventsOptions) {
|
|
5
|
-
|
|
6
|
-
client.eventSize = 0;
|
|
7
|
-
client.removeAllListeners();
|
|
8
|
-
|
|
9
|
-
logInfo(`Reloading events from ${eventsOptions.path}`);
|
|
10
|
-
|
|
11
|
-
try {
|
|
12
|
-
|
|
13
|
-
await loadEvents(client, eventsOptions);
|
|
14
|
-
|
|
15
|
-
logSuccess(`Successfully reloaded ${client.eventSize} events.`);
|
|
16
|
-
return true
|
|
17
|
-
} catch (error: any) {
|
|
18
|
-
logError(`Error reloading events: ${error.message}`);
|
|
19
|
-
return false
|
|
20
|
-
}
|
|
21
|
-
}
|