trivious 1.3.24 → 1.3.26
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/dist/core/client/trivious.client.cjs +90 -0
- package/dist/core/client/trivious.client.cjs.map +1 -0
- package/dist/core/client/trivious.client.d.cts +3 -0
- package/dist/core/client/trivious.client.d.ts +3 -0
- package/dist/core/client/trivious.client.js +88 -0
- package/dist/core/client/trivious.client.js.map +1 -0
- package/dist/core/commands/command.base.cjs +307 -0
- package/dist/core/commands/command.base.cjs.map +1 -0
- package/dist/core/commands/command.base.d.cts +3 -0
- package/dist/core/commands/command.base.d.ts +3 -0
- package/dist/core/commands/command.base.js +299 -0
- package/dist/core/commands/command.base.js.map +1 -0
- package/dist/core/commands/subcommand.base.cjs +96 -0
- package/dist/core/commands/subcommand.base.cjs.map +1 -0
- package/dist/core/commands/subcommand.base.d.cts +3 -0
- package/dist/core/commands/subcommand.base.d.ts +3 -0
- package/dist/core/commands/subcommand.base.js +91 -0
- package/dist/core/commands/subcommand.base.js.map +1 -0
- package/dist/core/components/component.base.cjs +111 -0
- package/dist/core/components/component.base.cjs.map +1 -0
- package/dist/core/components/component.base.d.cts +3 -0
- package/dist/core/components/component.base.d.ts +3 -0
- package/dist/core/components/component.base.js +106 -0
- package/dist/core/components/component.base.js.map +1 -0
- package/dist/core/events/clientReady.cjs +12 -0
- package/dist/core/events/clientReady.cjs.map +1 -0
- package/dist/core/events/clientReady.d.cts +10 -0
- package/dist/core/events/clientReady.d.ts +10 -0
- package/dist/core/events/clientReady.js +10 -0
- package/dist/core/events/clientReady.js.map +1 -0
- package/dist/core/events/interactionCreate.cjs +70 -0
- package/dist/core/events/interactionCreate.cjs.map +1 -0
- package/dist/core/events/interactionCreate.d.cts +10 -0
- package/dist/core/events/interactionCreate.d.ts +10 -0
- package/dist/core/events/interactionCreate.js +68 -0
- package/dist/core/events/interactionCreate.js.map +1 -0
- package/dist/core/registry/command.registry.cjs +60 -0
- package/dist/core/registry/command.registry.cjs.map +1 -0
- package/dist/core/registry/command.registry.d.cts +3 -0
- package/dist/core/registry/command.registry.d.ts +3 -0
- package/dist/core/registry/command.registry.js +54 -0
- package/dist/core/registry/command.registry.js.map +1 -0
- package/dist/core/registry/component.registry.cjs +46 -0
- package/dist/core/registry/component.registry.cjs.map +1 -0
- package/dist/core/registry/component.registry.d.cts +3 -0
- package/dist/core/registry/component.registry.d.ts +3 -0
- package/dist/core/registry/component.registry.js +40 -0
- package/dist/core/registry/component.registry.js.map +1 -0
- package/dist/core/registry/event.registry.cjs +77 -0
- package/dist/core/registry/event.registry.cjs.map +1 -0
- package/dist/core/registry/event.registry.d.cts +3 -0
- package/dist/core/registry/event.registry.d.ts +3 -0
- package/dist/core/registry/event.registry.js +71 -0
- package/dist/core/registry/event.registry.js.map +1 -0
- package/dist/core/registry/index.cjs +49 -0
- package/dist/core/registry/index.cjs.map +1 -0
- package/dist/core/registry/index.d.cts +19 -0
- package/dist/core/registry/index.d.ts +19 -0
- package/dist/core/registry/index.js +39 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/registry/module.registry.cjs +61 -0
- package/dist/core/registry/module.registry.cjs.map +1 -0
- package/dist/core/registry/module.registry.d.cts +3 -0
- package/dist/core/registry/module.registry.d.ts +3 -0
- package/dist/core/registry/module.registry.js +55 -0
- package/dist/core/registry/module.registry.js.map +1 -0
- package/dist/index-5IsAwOsi.d.ts +940 -0
- package/dist/index-BjPKCNAw.d.cts +940 -0
- package/dist/index.cjs +65 -1403
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -987
- package/dist/index.d.ts +3 -987
- package/dist/index.js +9 -1392
- package/dist/index.js.map +1 -1
- package/dist/shared/typings/client.cjs +4 -0
- package/dist/shared/typings/client.cjs.map +1 -0
- package/dist/shared/typings/client.d.cts +3 -0
- package/dist/shared/typings/client.d.ts +3 -0
- package/dist/shared/typings/client.js +3 -0
- package/dist/shared/typings/client.js.map +1 -0
- package/dist/shared/typings/commands.cjs +4 -0
- package/dist/shared/typings/commands.cjs.map +1 -0
- package/dist/shared/typings/commands.d.cts +3 -0
- package/dist/shared/typings/commands.d.ts +3 -0
- package/dist/shared/typings/commands.js +3 -0
- package/dist/shared/typings/commands.js.map +1 -0
- package/dist/shared/typings/components.cjs +22 -0
- package/dist/shared/typings/components.cjs.map +1 -0
- package/dist/shared/typings/components.d.cts +3 -0
- package/dist/shared/typings/components.d.ts +3 -0
- package/dist/shared/typings/components.js +19 -0
- package/dist/shared/typings/components.js.map +1 -0
- package/dist/shared/typings/events.cjs +4 -0
- package/dist/shared/typings/events.cjs.map +1 -0
- package/dist/shared/typings/events.d.cts +3 -0
- package/dist/shared/typings/events.d.ts +3 -0
- package/dist/shared/typings/events.js +3 -0
- package/dist/shared/typings/events.js.map +1 -0
- package/dist/shared/typings/index.cjs +56 -0
- package/dist/shared/typings/index.cjs.map +1 -0
- package/dist/shared/typings/index.d.cts +3 -0
- package/dist/shared/typings/index.d.ts +3 -0
- package/dist/shared/typings/index.js +9 -0
- package/dist/shared/typings/index.js.map +1 -0
- package/dist/shared/typings/module.cjs +4 -0
- package/dist/shared/typings/module.cjs.map +1 -0
- package/dist/shared/typings/module.d.cts +3 -0
- package/dist/shared/typings/module.d.ts +3 -0
- package/dist/shared/typings/module.js +3 -0
- package/dist/shared/typings/module.js.map +1 -0
- package/dist/shared/typings/permissions.cjs +22 -0
- package/dist/shared/typings/permissions.cjs.map +1 -0
- package/dist/shared/typings/permissions.d.cts +3 -0
- package/dist/shared/typings/permissions.d.ts +3 -0
- package/dist/shared/typings/permissions.js +19 -0
- package/dist/shared/typings/permissions.js.map +1 -0
- package/dist/shared/typings/registry.cjs +63 -0
- package/dist/shared/typings/registry.cjs.map +1 -0
- package/dist/shared/typings/registry.d.cts +51 -0
- package/dist/shared/typings/registry.d.ts +51 -0
- package/dist/shared/typings/registry.js +61 -0
- package/dist/shared/typings/registry.js.map +1 -0
- package/dist/shared/utility/functions.cjs +80 -0
- package/dist/shared/utility/functions.cjs.map +1 -0
- package/dist/shared/utility/functions.d.cts +56 -0
- package/dist/shared/utility/functions.d.ts +56 -0
- package/dist/shared/utility/functions.js +73 -0
- package/dist/shared/utility/functions.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var discord_js = require('discord.js');
|
|
4
|
+
var functions_js = require('../../shared/utility/functions.js');
|
|
5
|
+
var index_js = require('../../shared/typings/index.js');
|
|
6
|
+
var fs = require('fs');
|
|
7
|
+
var path = require('node:path');
|
|
8
|
+
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
12
|
+
|
|
13
|
+
class EventRegistry extends index_js.BaseRegistry {
|
|
14
|
+
items = new discord_js.Collection();
|
|
15
|
+
/**
|
|
16
|
+
* Load all preset events, can be overridden by user-provided events.
|
|
17
|
+
*
|
|
18
|
+
* @async
|
|
19
|
+
* @protected
|
|
20
|
+
* @returns {Promise<this>}
|
|
21
|
+
*/
|
|
22
|
+
async loadPresetEvents() {
|
|
23
|
+
const directory = functions_js.getCorePath({ coreDirectory: "core/events" });
|
|
24
|
+
if (!directory) return;
|
|
25
|
+
const entries = await fs.promises.readdir(directory, { withFileTypes: true });
|
|
26
|
+
for (const entry of entries) {
|
|
27
|
+
const fullPath = path.join(directory, entry.name);
|
|
28
|
+
if (!entry.isFile() || !entry.name.endsWith(".js")) continue;
|
|
29
|
+
const event = await this.importFile(fullPath);
|
|
30
|
+
if (!event) continue;
|
|
31
|
+
if (this.items.has(event.name)) continue;
|
|
32
|
+
this.items.set(event.name, event);
|
|
33
|
+
}
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Load all events.
|
|
38
|
+
*
|
|
39
|
+
* @async
|
|
40
|
+
* @param {string} [directory=getCorePath({ coreDirectory: "events" })]
|
|
41
|
+
* @returns {Promise<this>}
|
|
42
|
+
*/
|
|
43
|
+
async load(directory = functions_js.resolveUserPath(path__default.default.join("src", "events"))) {
|
|
44
|
+
if (!await functions_js.exists(directory)) return this;
|
|
45
|
+
const entries = await fs.promises.readdir(directory, { withFileTypes: true });
|
|
46
|
+
for (const entry of entries) {
|
|
47
|
+
const fullPath = path.join(directory, entry.name);
|
|
48
|
+
if (entry.isDirectory()) {
|
|
49
|
+
await this.load(fullPath);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if (entry.isFile() && entry.name.endsWith(".js")) {
|
|
53
|
+
const event = await this.importFile(fullPath);
|
|
54
|
+
if (!event) continue;
|
|
55
|
+
this.items.set(event.name, event);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
await this.loadPresetEvents();
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Bind loaded events to their client events respectively.
|
|
63
|
+
*
|
|
64
|
+
* @param {TriviousClient} client
|
|
65
|
+
*/
|
|
66
|
+
bind(client) {
|
|
67
|
+
for (const event of this.items.values()) {
|
|
68
|
+
const handler = (...args) => void event.execute(client, ...args);
|
|
69
|
+
if (event.once) client.once(event.name, handler);
|
|
70
|
+
else client.on(event.name, handler);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
module.exports = EventRegistry;
|
|
76
|
+
//# sourceMappingURL=event.registry.cjs.map
|
|
77
|
+
//# sourceMappingURL=event.registry.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/registry/event.registry.ts"],"names":["BaseRegistry","Collection","getCorePath","fs","join","resolveUserPath","path","exists"],"mappings":";;;;;;;;;;;;AAeA,MAAO,sBAAoCA,qBAAA,CAAoB;AAAA,EACpD,KAAA,GAAQ,IAAIC,qBAAA,EAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShD,MAAgB,gBAAA,GAAmB;AAClC,IAAA,MAAM,SAAA,GAAYC,wBAAA,CAAY,EAAE,aAAA,EAAe,eAAe,CAAA;AAC9D,IAAA,IAAI,CAAC,SAAA,EAAW;AAEhB,IAAA,MAAM,OAAA,GAAU,MAAMC,WAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AACnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAWC,SAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAC3C,MAAA,IAAI,CAAC,MAAM,MAAA,EAAO,IAAK,CAAC,KAAA,CAAM,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,EAAG;AAEpD,MAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,UAAA,CAAkB,QAAQ,CAAA;AACnD,MAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,MAAA,IAAI,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA,EAAG;AAChC,MAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,IAAA,EAAM,KAAK,CAAA;AAAA,IACjC;AAEA,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,KAAK,SAAA,GAAoBC,4BAAA,CAAgBC,sBAAK,IAAA,CAAK,KAAA,EAAO,QAAQ,CAAC,CAAA,EAAkB;AAC1F,IAAA,IAAI,CAAE,MAAMC,mBAAA,CAAO,SAAS,GAAI,OAAO,IAAA;AAEvC,IAAA,MAAM,OAAA,GAAU,MAAMJ,WAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AACnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAWC,SAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAE3C,MAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACxB,QAAA,MAAM,IAAA,CAAK,KAAK,QAAQ,CAAA;AACxB,QAAA;AAAA,MACD;AAEA,MAAA,IAAI,MAAM,MAAA,EAAO,IAAK,MAAM,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,EAAG;AACjD,QAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,UAAA,CAAkB,QAAQ,CAAA;AACnD,QAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,QAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,IAAA,EAAM,KAAK,CAAA;AAAA,MACjC;AAAA,IACD;AAEA,IAAA,MAAM,KAAK,gBAAA,EAAiB;AAC5B,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,MAAA,EAAwB;AAC5B,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,KAAA,CAAM,MAAA,EAAO,EAAG;AACxC,MAAA,MAAM,OAAA,GAAU,IAAI,IAAA,KACnB,KAAK,MAAM,OAAA,CAAQ,MAAA,EAAQ,GAAG,IAAI,CAAA;AAEnC,MAAA,IAAI,MAAM,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,MAAM,OAAO,CAAA;AAAA,WAC1C,MAAA,CAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAAA,IACnC;AAAA,EACD;AACD","file":"event.registry.cjs","sourcesContent":["import { ClientEvents, Collection } from \"discord.js\";\nimport { exists, getCorePath, resolveUserPath } from \"src/shared/utility/functions.js\";\nimport { BaseRegistry, Event } from \"src/shared/typings/index.js\";\nimport { promises as fs } from \"fs\";\nimport path, { join } from \"node:path\";\nimport TriviousClient from \"../client/trivious.client.js\";\n\n/**\n * Registry to load, get and bind events.\n *\n * @export\n * @class EventRegistry\n * @typedef {EventRegistry}\n * @extends {BaseRegistry<Event>}\n */\nexport default class EventRegistry extends BaseRegistry<Event> {\n\tprotected items = new Collection<string, Event>();\n\n\t/**\n\t * Load all preset events, can be overridden by user-provided events.\n\t *\n\t * @async\n\t * @protected\n\t * @returns {Promise<this>}\n\t */\n\tprotected async loadPresetEvents() {\n\t\tconst directory = getCorePath({ coreDirectory: \"core/events\" });\n\t\tif (!directory) return;\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\t\t\tif (!entry.isFile() || !entry.name.endsWith(\".js\")) continue;\n\n\t\t\tconst event = await this.importFile<Event>(fullPath);\n\t\t\tif (!event) continue;\n\n\t\t\tif (this.items.has(event.name)) continue;\n\t\t\tthis.items.set(event.name, event);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Load all events.\n\t *\n\t * @async\n\t * @param {string} [directory=getCorePath({ coreDirectory: \"events\" })]\n\t * @returns {Promise<this>}\n\t */\n\tasync load(directory: string = resolveUserPath(path.join(\"src\", \"events\"))): Promise<this> {\n\t\tif (!(await exists(directory))) return this;\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tawait this.load(fullPath);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (entry.isFile() && entry.name.endsWith(\".js\")) {\n\t\t\t\tconst event = await this.importFile<Event>(fullPath);\n\t\t\t\tif (!event) continue;\n\n\t\t\t\tthis.items.set(event.name, event);\n\t\t\t}\n\t\t}\n\n\t\tawait this.loadPresetEvents();\n\t\treturn this;\n\t}\n\n\t/**\n\t * Bind loaded events to their client events respectively.\n\t *\n\t * @param {TriviousClient} client\n\t */\n\tbind(client: TriviousClient) {\n\t\tfor (const event of this.items.values()) {\n\t\t\tconst handler = (...args: ClientEvents[typeof event.name]) =>\n\t\t\t\tvoid event.execute(client, ...args);\n\n\t\t\tif (event.once) client.once(event.name, handler);\n\t\t\telse client.on(event.name, handler);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Collection } from 'discord.js';
|
|
2
|
+
import { getCorePath, resolveUserPath, exists } from '../../shared/utility/functions.js';
|
|
3
|
+
import { BaseRegistry } from '../../shared/typings/index.js';
|
|
4
|
+
import { promises } from 'fs';
|
|
5
|
+
import path, { join } from 'node:path';
|
|
6
|
+
|
|
7
|
+
class EventRegistry extends BaseRegistry {
|
|
8
|
+
items = new Collection();
|
|
9
|
+
/**
|
|
10
|
+
* Load all preset events, can be overridden by user-provided events.
|
|
11
|
+
*
|
|
12
|
+
* @async
|
|
13
|
+
* @protected
|
|
14
|
+
* @returns {Promise<this>}
|
|
15
|
+
*/
|
|
16
|
+
async loadPresetEvents() {
|
|
17
|
+
const directory = getCorePath({ coreDirectory: "core/events" });
|
|
18
|
+
if (!directory) return;
|
|
19
|
+
const entries = await promises.readdir(directory, { withFileTypes: true });
|
|
20
|
+
for (const entry of entries) {
|
|
21
|
+
const fullPath = join(directory, entry.name);
|
|
22
|
+
if (!entry.isFile() || !entry.name.endsWith(".js")) continue;
|
|
23
|
+
const event = await this.importFile(fullPath);
|
|
24
|
+
if (!event) continue;
|
|
25
|
+
if (this.items.has(event.name)) continue;
|
|
26
|
+
this.items.set(event.name, event);
|
|
27
|
+
}
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Load all events.
|
|
32
|
+
*
|
|
33
|
+
* @async
|
|
34
|
+
* @param {string} [directory=getCorePath({ coreDirectory: "events" })]
|
|
35
|
+
* @returns {Promise<this>}
|
|
36
|
+
*/
|
|
37
|
+
async load(directory = resolveUserPath(path.join("src", "events"))) {
|
|
38
|
+
if (!await exists(directory)) return this;
|
|
39
|
+
const entries = await promises.readdir(directory, { withFileTypes: true });
|
|
40
|
+
for (const entry of entries) {
|
|
41
|
+
const fullPath = join(directory, entry.name);
|
|
42
|
+
if (entry.isDirectory()) {
|
|
43
|
+
await this.load(fullPath);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (entry.isFile() && entry.name.endsWith(".js")) {
|
|
47
|
+
const event = await this.importFile(fullPath);
|
|
48
|
+
if (!event) continue;
|
|
49
|
+
this.items.set(event.name, event);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
await this.loadPresetEvents();
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Bind loaded events to their client events respectively.
|
|
57
|
+
*
|
|
58
|
+
* @param {TriviousClient} client
|
|
59
|
+
*/
|
|
60
|
+
bind(client) {
|
|
61
|
+
for (const event of this.items.values()) {
|
|
62
|
+
const handler = (...args) => void event.execute(client, ...args);
|
|
63
|
+
if (event.once) client.once(event.name, handler);
|
|
64
|
+
else client.on(event.name, handler);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { EventRegistry as default };
|
|
70
|
+
//# sourceMappingURL=event.registry.js.map
|
|
71
|
+
//# sourceMappingURL=event.registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/registry/event.registry.ts"],"names":["fs"],"mappings":";;;;;;AAeA,MAAO,sBAAoC,YAAA,CAAoB;AAAA,EACpD,KAAA,GAAQ,IAAI,UAAA,EAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShD,MAAgB,gBAAA,GAAmB;AAClC,IAAA,MAAM,SAAA,GAAY,WAAA,CAAY,EAAE,aAAA,EAAe,eAAe,CAAA;AAC9D,IAAA,IAAI,CAAC,SAAA,EAAW;AAEhB,IAAA,MAAM,OAAA,GAAU,MAAMA,QAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AACnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAC3C,MAAA,IAAI,CAAC,MAAM,MAAA,EAAO,IAAK,CAAC,KAAA,CAAM,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,EAAG;AAEpD,MAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,UAAA,CAAkB,QAAQ,CAAA;AACnD,MAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,MAAA,IAAI,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,IAAI,CAAA,EAAG;AAChC,MAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,IAAA,EAAM,KAAK,CAAA;AAAA,IACjC;AAEA,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,KAAK,SAAA,GAAoB,eAAA,CAAgB,KAAK,IAAA,CAAK,KAAA,EAAO,QAAQ,CAAC,CAAA,EAAkB;AAC1F,IAAA,IAAI,CAAE,MAAM,MAAA,CAAO,SAAS,GAAI,OAAO,IAAA;AAEvC,IAAA,MAAM,OAAA,GAAU,MAAMA,QAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AACnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAE3C,MAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACxB,QAAA,MAAM,IAAA,CAAK,KAAK,QAAQ,CAAA;AACxB,QAAA;AAAA,MACD;AAEA,MAAA,IAAI,MAAM,MAAA,EAAO,IAAK,MAAM,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,EAAG;AACjD,QAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,UAAA,CAAkB,QAAQ,CAAA;AACnD,QAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,QAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,IAAA,EAAM,KAAK,CAAA;AAAA,MACjC;AAAA,IACD;AAEA,IAAA,MAAM,KAAK,gBAAA,EAAiB;AAC5B,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,MAAA,EAAwB;AAC5B,IAAA,KAAA,MAAW,KAAA,IAAS,IAAA,CAAK,KAAA,CAAM,MAAA,EAAO,EAAG;AACxC,MAAA,MAAM,OAAA,GAAU,IAAI,IAAA,KACnB,KAAK,MAAM,OAAA,CAAQ,MAAA,EAAQ,GAAG,IAAI,CAAA;AAEnC,MAAA,IAAI,MAAM,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,MAAM,OAAO,CAAA;AAAA,WAC1C,MAAA,CAAO,EAAA,CAAG,KAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAAA,IACnC;AAAA,EACD;AACD","file":"event.registry.js","sourcesContent":["import { ClientEvents, Collection } from \"discord.js\";\nimport { exists, getCorePath, resolveUserPath } from \"src/shared/utility/functions.js\";\nimport { BaseRegistry, Event } from \"src/shared/typings/index.js\";\nimport { promises as fs } from \"fs\";\nimport path, { join } from \"node:path\";\nimport TriviousClient from \"../client/trivious.client.js\";\n\n/**\n * Registry to load, get and bind events.\n *\n * @export\n * @class EventRegistry\n * @typedef {EventRegistry}\n * @extends {BaseRegistry<Event>}\n */\nexport default class EventRegistry extends BaseRegistry<Event> {\n\tprotected items = new Collection<string, Event>();\n\n\t/**\n\t * Load all preset events, can be overridden by user-provided events.\n\t *\n\t * @async\n\t * @protected\n\t * @returns {Promise<this>}\n\t */\n\tprotected async loadPresetEvents() {\n\t\tconst directory = getCorePath({ coreDirectory: \"core/events\" });\n\t\tif (!directory) return;\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\t\t\tif (!entry.isFile() || !entry.name.endsWith(\".js\")) continue;\n\n\t\t\tconst event = await this.importFile<Event>(fullPath);\n\t\t\tif (!event) continue;\n\n\t\t\tif (this.items.has(event.name)) continue;\n\t\t\tthis.items.set(event.name, event);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Load all events.\n\t *\n\t * @async\n\t * @param {string} [directory=getCorePath({ coreDirectory: \"events\" })]\n\t * @returns {Promise<this>}\n\t */\n\tasync load(directory: string = resolveUserPath(path.join(\"src\", \"events\"))): Promise<this> {\n\t\tif (!(await exists(directory))) return this;\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tawait this.load(fullPath);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (entry.isFile() && entry.name.endsWith(\".js\")) {\n\t\t\t\tconst event = await this.importFile<Event>(fullPath);\n\t\t\t\tif (!event) continue;\n\n\t\t\t\tthis.items.set(event.name, event);\n\t\t\t}\n\t\t}\n\n\t\tawait this.loadPresetEvents();\n\t\treturn this;\n\t}\n\n\t/**\n\t * Bind loaded events to their client events respectively.\n\t *\n\t * @param {TriviousClient} client\n\t */\n\tbind(client: TriviousClient) {\n\t\tfor (const event of this.items.values()) {\n\t\t\tconst handler = (...args: ClientEvents[typeof event.name]) =>\n\t\t\t\tvoid event.execute(client, ...args);\n\n\t\t\tif (event.once) client.once(event.name, handler);\n\t\t\telse client.on(event.name, handler);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var functions_js = require('../../shared/utility/functions.js');
|
|
4
|
+
var CommandRegistry = require('./command.registry.js');
|
|
5
|
+
var ComponentRegistry = require('./component.registry.js');
|
|
6
|
+
var EventRegistry = require('./event.registry.js');
|
|
7
|
+
var ModuleRegistry = require('./module.registry.js');
|
|
8
|
+
var path = require('node:path');
|
|
9
|
+
|
|
10
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var CommandRegistry__default = /*#__PURE__*/_interopDefault(CommandRegistry);
|
|
13
|
+
var ComponentRegistry__default = /*#__PURE__*/_interopDefault(ComponentRegistry);
|
|
14
|
+
var EventRegistry__default = /*#__PURE__*/_interopDefault(EventRegistry);
|
|
15
|
+
var ModuleRegistry__default = /*#__PURE__*/_interopDefault(ModuleRegistry);
|
|
16
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
17
|
+
|
|
18
|
+
const registries = () => ({
|
|
19
|
+
commands: new CommandRegistry__default.default(),
|
|
20
|
+
components: new ComponentRegistry__default.default(),
|
|
21
|
+
events: new EventRegistry__default.default(),
|
|
22
|
+
modules: new ModuleRegistry__default.default(),
|
|
23
|
+
async loadAll(options) {
|
|
24
|
+
const corePaths = options.corePaths;
|
|
25
|
+
const corePath = options.corePath;
|
|
26
|
+
await Promise.all([
|
|
27
|
+
this.commands.load(
|
|
28
|
+
corePath ? functions_js.resolveUserPath(path__default.default.join(corePath, "commands")) : corePaths?.commandsPath ? functions_js.resolveUserPath(corePaths.commandsPath) : void 0
|
|
29
|
+
),
|
|
30
|
+
this.components.load(
|
|
31
|
+
corePath ? functions_js.resolveUserPath(path__default.default.join(corePath, "components")) : corePaths?.componentsPath ? functions_js.resolveUserPath(corePaths.componentsPath) : void 0
|
|
32
|
+
),
|
|
33
|
+
this.events.load(
|
|
34
|
+
corePath ? functions_js.resolveUserPath(path__default.default.join(corePath, "events")) : corePaths?.eventsPath ? functions_js.resolveUserPath(corePaths.eventsPath) : void 0
|
|
35
|
+
),
|
|
36
|
+
this.modules.load(
|
|
37
|
+
corePath ? functions_js.resolveUserPath(path__default.default.join(corePath, "modules")) : corePaths?.modulesPath ? functions_js.resolveUserPath(corePaths.modulesPath) : void 0
|
|
38
|
+
)
|
|
39
|
+
]);
|
|
40
|
+
},
|
|
41
|
+
bind(client) {
|
|
42
|
+
this.events.bind(client);
|
|
43
|
+
this.modules.bind(client);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
exports.registries = registries;
|
|
48
|
+
//# sourceMappingURL=index.cjs.map
|
|
49
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/registry/index.ts"],"names":["CommandRegistry","ComponentRegistry","EventRegistry","ModuleRegistry","resolveUserPath","path"],"mappings":";;;;;;;;;;;;;;;;;AAcO,MAAM,aAAa,OAAO;AAAA,EAChC,QAAA,EAAU,IAAIA,gCAAA,EAAgB;AAAA,EAC9B,UAAA,EAAY,IAAIC,kCAAA,EAAkB;AAAA,EAClC,MAAA,EAAQ,IAAIC,8BAAA,EAAc;AAAA,EAC1B,OAAA,EAAS,IAAIC,+BAAA,EAAe;AAAA,EAE5B,MAAM,QAAQ,OAAA,EAAgC;AAC7C,IAAA,MAAM,YAAY,OAAA,CAAQ,SAAA;AAC1B,IAAA,MAAM,WAAW,OAAA,CAAQ,QAAA;AAEzB,IAAA,MAAM,QAAQ,GAAA,CAAI;AAAA,MACjB,KAAK,QAAA,CAAS,IAAA;AAAA,QACb,QAAA,GACGC,4BAAA,CAAgBC,qBAAA,CAAK,IAAA,CAAK,QAAA,EAAU,UAAU,CAAC,CAAA,GAC/C,SAAA,EAAW,YAAA,GACVD,4BAAA,CAAgB,SAAA,CAAU,YAAY,CAAA,GACtC;AAAA,OACL;AAAA,MACA,KAAK,UAAA,CAAW,IAAA;AAAA,QACf,QAAA,GACGA,4BAAA,CAAgBC,qBAAA,CAAK,IAAA,CAAK,QAAA,EAAU,YAAY,CAAC,CAAA,GACjD,SAAA,EAAW,cAAA,GACVD,4BAAA,CAAgB,SAAA,CAAU,cAAc,CAAA,GACxC;AAAA,OACL;AAAA,MACA,KAAK,MAAA,CAAO,IAAA;AAAA,QACX,QAAA,GACGA,4BAAA,CAAgBC,qBAAA,CAAK,IAAA,CAAK,QAAA,EAAU,QAAQ,CAAC,CAAA,GAC7C,SAAA,EAAW,UAAA,GACVD,4BAAA,CAAgB,SAAA,CAAU,UAAU,CAAA,GACpC;AAAA,OACL;AAAA,MACA,KAAK,OAAA,CAAQ,IAAA;AAAA,QACZ,QAAA,GACGA,4BAAA,CAAgBC,qBAAA,CAAK,IAAA,CAAK,QAAA,EAAU,SAAS,CAAC,CAAA,GAC9C,SAAA,EAAW,WAAA,GACVD,4BAAA,CAAgB,SAAA,CAAU,WAAW,CAAA,GACrC;AAAA;AACL,KACA,CAAA;AAAA,EACF,CAAA;AAAA,EAEA,KAAK,MAAA,EAAwB;AAC5B,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,MAAM,CAAA;AACvB,IAAA,IAAA,CAAK,OAAA,CAAQ,KAAK,MAAM,CAAA;AAAA,EACzB;AACD,CAAA","file":"index.cjs","sourcesContent":["import { TriviousClientOptions } from \"src/shared/typings/client.js\";\nimport { resolveUserPath } from \"src/shared/utility/functions.js\";\nimport TriviousClient from \"../client/trivious.client.js\";\nimport CommandRegistry from \"./command.registry.js\";\nimport ComponentRegistry from \"./component.registry.js\";\nimport EventRegistry from \"./event.registry.js\";\nimport ModuleRegistry from \"./module.registry.js\";\nimport path from \"node:path\";\n\n/**\n * Create new registries.\n *\n * @returns {{ commands: CommandRegistry; components: ComponentRegistry; events: EventRegistry; modules: any; loadAll(options: TriviousClientOptions): any; bind(client: TriviousClient): void; }}\n */\nexport const registries = () => ({\n\tcommands: new CommandRegistry(),\n\tcomponents: new ComponentRegistry(),\n\tevents: new EventRegistry(),\n\tmodules: new ModuleRegistry(),\n\n\tasync loadAll(options: TriviousClientOptions) {\n\t\tconst corePaths = options.corePaths;\n\t\tconst corePath = options.corePath;\n\n\t\tawait Promise.all([\n\t\t\tthis.commands.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"commands\"))\n\t\t\t\t\t: corePaths?.commandsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.commandsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.components.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"components\"))\n\t\t\t\t\t: corePaths?.componentsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.componentsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.events.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"events\"))\n\t\t\t\t\t: corePaths?.eventsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.eventsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.modules.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"modules\"))\n\t\t\t\t\t: corePaths?.modulesPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.modulesPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t]);\n\t},\n\n\tbind(client: TriviousClient) {\n\t\tthis.events.bind(client);\n\t\tthis.modules.bind(client);\n\t},\n});\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { C as CommandRegistry, a as ComponentRegistry, E as EventRegistry, M as ModuleRegistry, b as TriviousClientOptions, T as TriviousClient } from '../../index-BjPKCNAw.cjs';
|
|
2
|
+
import '../../shared/typings/registry.cjs';
|
|
3
|
+
import 'discord.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Create new registries.
|
|
7
|
+
*
|
|
8
|
+
* @returns {{ commands: CommandRegistry; components: ComponentRegistry; events: EventRegistry; modules: any; loadAll(options: TriviousClientOptions): any; bind(client: TriviousClient): void; }}
|
|
9
|
+
*/
|
|
10
|
+
declare const registries: () => {
|
|
11
|
+
commands: CommandRegistry;
|
|
12
|
+
components: ComponentRegistry;
|
|
13
|
+
events: EventRegistry;
|
|
14
|
+
modules: ModuleRegistry;
|
|
15
|
+
loadAll(options: TriviousClientOptions): Promise<void>;
|
|
16
|
+
bind(client: TriviousClient): void;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { registries };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { C as CommandRegistry, a as ComponentRegistry, E as EventRegistry, M as ModuleRegistry, b as TriviousClientOptions, T as TriviousClient } from '../../index-5IsAwOsi.js';
|
|
2
|
+
import '../../shared/typings/registry.js';
|
|
3
|
+
import 'discord.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Create new registries.
|
|
7
|
+
*
|
|
8
|
+
* @returns {{ commands: CommandRegistry; components: ComponentRegistry; events: EventRegistry; modules: any; loadAll(options: TriviousClientOptions): any; bind(client: TriviousClient): void; }}
|
|
9
|
+
*/
|
|
10
|
+
declare const registries: () => {
|
|
11
|
+
commands: CommandRegistry;
|
|
12
|
+
components: ComponentRegistry;
|
|
13
|
+
events: EventRegistry;
|
|
14
|
+
modules: ModuleRegistry;
|
|
15
|
+
loadAll(options: TriviousClientOptions): Promise<void>;
|
|
16
|
+
bind(client: TriviousClient): void;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { registries };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { resolveUserPath } from '../../shared/utility/functions.js';
|
|
2
|
+
import CommandRegistry from './command.registry.js';
|
|
3
|
+
import ComponentRegistry from './component.registry.js';
|
|
4
|
+
import EventRegistry from './event.registry.js';
|
|
5
|
+
import ModuleRegistry from './module.registry.js';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
|
|
8
|
+
const registries = () => ({
|
|
9
|
+
commands: new CommandRegistry(),
|
|
10
|
+
components: new ComponentRegistry(),
|
|
11
|
+
events: new EventRegistry(),
|
|
12
|
+
modules: new ModuleRegistry(),
|
|
13
|
+
async loadAll(options) {
|
|
14
|
+
const corePaths = options.corePaths;
|
|
15
|
+
const corePath = options.corePath;
|
|
16
|
+
await Promise.all([
|
|
17
|
+
this.commands.load(
|
|
18
|
+
corePath ? resolveUserPath(path.join(corePath, "commands")) : corePaths?.commandsPath ? resolveUserPath(corePaths.commandsPath) : void 0
|
|
19
|
+
),
|
|
20
|
+
this.components.load(
|
|
21
|
+
corePath ? resolveUserPath(path.join(corePath, "components")) : corePaths?.componentsPath ? resolveUserPath(corePaths.componentsPath) : void 0
|
|
22
|
+
),
|
|
23
|
+
this.events.load(
|
|
24
|
+
corePath ? resolveUserPath(path.join(corePath, "events")) : corePaths?.eventsPath ? resolveUserPath(corePaths.eventsPath) : void 0
|
|
25
|
+
),
|
|
26
|
+
this.modules.load(
|
|
27
|
+
corePath ? resolveUserPath(path.join(corePath, "modules")) : corePaths?.modulesPath ? resolveUserPath(corePaths.modulesPath) : void 0
|
|
28
|
+
)
|
|
29
|
+
]);
|
|
30
|
+
},
|
|
31
|
+
bind(client) {
|
|
32
|
+
this.events.bind(client);
|
|
33
|
+
this.modules.bind(client);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
export { registries };
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/registry/index.ts"],"names":[],"mappings":";;;;;;;AAcO,MAAM,aAAa,OAAO;AAAA,EAChC,QAAA,EAAU,IAAI,eAAA,EAAgB;AAAA,EAC9B,UAAA,EAAY,IAAI,iBAAA,EAAkB;AAAA,EAClC,MAAA,EAAQ,IAAI,aAAA,EAAc;AAAA,EAC1B,OAAA,EAAS,IAAI,cAAA,EAAe;AAAA,EAE5B,MAAM,QAAQ,OAAA,EAAgC;AAC7C,IAAA,MAAM,YAAY,OAAA,CAAQ,SAAA;AAC1B,IAAA,MAAM,WAAW,OAAA,CAAQ,QAAA;AAEzB,IAAA,MAAM,QAAQ,GAAA,CAAI;AAAA,MACjB,KAAK,QAAA,CAAS,IAAA;AAAA,QACb,QAAA,GACG,eAAA,CAAgB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,UAAU,CAAC,CAAA,GAC/C,SAAA,EAAW,YAAA,GACV,eAAA,CAAgB,SAAA,CAAU,YAAY,CAAA,GACtC;AAAA,OACL;AAAA,MACA,KAAK,UAAA,CAAW,IAAA;AAAA,QACf,QAAA,GACG,eAAA,CAAgB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,YAAY,CAAC,CAAA,GACjD,SAAA,EAAW,cAAA,GACV,eAAA,CAAgB,SAAA,CAAU,cAAc,CAAA,GACxC;AAAA,OACL;AAAA,MACA,KAAK,MAAA,CAAO,IAAA;AAAA,QACX,QAAA,GACG,eAAA,CAAgB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,QAAQ,CAAC,CAAA,GAC7C,SAAA,EAAW,UAAA,GACV,eAAA,CAAgB,SAAA,CAAU,UAAU,CAAA,GACpC;AAAA,OACL;AAAA,MACA,KAAK,OAAA,CAAQ,IAAA;AAAA,QACZ,QAAA,GACG,eAAA,CAAgB,IAAA,CAAK,IAAA,CAAK,QAAA,EAAU,SAAS,CAAC,CAAA,GAC9C,SAAA,EAAW,WAAA,GACV,eAAA,CAAgB,SAAA,CAAU,WAAW,CAAA,GACrC;AAAA;AACL,KACA,CAAA;AAAA,EACF,CAAA;AAAA,EAEA,KAAK,MAAA,EAAwB;AAC5B,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,MAAM,CAAA;AACvB,IAAA,IAAA,CAAK,OAAA,CAAQ,KAAK,MAAM,CAAA;AAAA,EACzB;AACD,CAAA","file":"index.js","sourcesContent":["import { TriviousClientOptions } from \"src/shared/typings/client.js\";\nimport { resolveUserPath } from \"src/shared/utility/functions.js\";\nimport TriviousClient from \"../client/trivious.client.js\";\nimport CommandRegistry from \"./command.registry.js\";\nimport ComponentRegistry from \"./component.registry.js\";\nimport EventRegistry from \"./event.registry.js\";\nimport ModuleRegistry from \"./module.registry.js\";\nimport path from \"node:path\";\n\n/**\n * Create new registries.\n *\n * @returns {{ commands: CommandRegistry; components: ComponentRegistry; events: EventRegistry; modules: any; loadAll(options: TriviousClientOptions): any; bind(client: TriviousClient): void; }}\n */\nexport const registries = () => ({\n\tcommands: new CommandRegistry(),\n\tcomponents: new ComponentRegistry(),\n\tevents: new EventRegistry(),\n\tmodules: new ModuleRegistry(),\n\n\tasync loadAll(options: TriviousClientOptions) {\n\t\tconst corePaths = options.corePaths;\n\t\tconst corePath = options.corePath;\n\n\t\tawait Promise.all([\n\t\t\tthis.commands.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"commands\"))\n\t\t\t\t\t: corePaths?.commandsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.commandsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.components.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"components\"))\n\t\t\t\t\t: corePaths?.componentsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.componentsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.events.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"events\"))\n\t\t\t\t\t: corePaths?.eventsPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.eventsPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t\tthis.modules.load(\n\t\t\t\tcorePath\n\t\t\t\t\t? resolveUserPath(path.join(corePath, \"modules\"))\n\t\t\t\t\t: corePaths?.modulesPath\n\t\t\t\t\t\t? resolveUserPath(corePaths.modulesPath)\n\t\t\t\t\t\t: undefined\n\t\t\t),\n\t\t]);\n\t},\n\n\tbind(client: TriviousClient) {\n\t\tthis.events.bind(client);\n\t\tthis.modules.bind(client);\n\t},\n});\n"]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var discord_js = require('discord.js');
|
|
4
|
+
var functions_js = require('../../shared/utility/functions.js');
|
|
5
|
+
var index_js = require('../../shared/typings/index.js');
|
|
6
|
+
var fs = require('fs');
|
|
7
|
+
var path = require('node:path');
|
|
8
|
+
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
12
|
+
|
|
13
|
+
class ModuleRegistry extends index_js.BaseRegistry {
|
|
14
|
+
items = new discord_js.Collection();
|
|
15
|
+
/**
|
|
16
|
+
* Load all modules.
|
|
17
|
+
*
|
|
18
|
+
* @async
|
|
19
|
+
* @param {string} [directory=getCorePath({ coreDirectory: "module" })]
|
|
20
|
+
* @returns {Promise<this>}
|
|
21
|
+
*/
|
|
22
|
+
async load(directory = functions_js.resolveUserPath(path__default.default.join("src", "modules"))) {
|
|
23
|
+
if (!await functions_js.exists(directory)) {
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
const entries = await fs.promises.readdir(directory, { withFileTypes: true });
|
|
27
|
+
for (const entry of entries) {
|
|
28
|
+
const fullPath = path.join(directory, entry.name);
|
|
29
|
+
if (!entry.isDirectory()) continue;
|
|
30
|
+
const moduleFiles = (await fs.promises.readdir(fullPath)).filter(
|
|
31
|
+
(file) => (file.endsWith(".ts") || file.endsWith(".js")) && !file.startsWith("index.") && !file.endsWith(".d.ts")
|
|
32
|
+
);
|
|
33
|
+
for (const file of moduleFiles) {
|
|
34
|
+
const moduleEvent = await this.importFile(path.join(fullPath, file));
|
|
35
|
+
if (!moduleEvent || !moduleEvent.events) continue;
|
|
36
|
+
this.items.set(moduleEvent.name, moduleEvent);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Bind all loaded modules to their client event respectively.
|
|
43
|
+
*
|
|
44
|
+
* @param {TriviousClient} client
|
|
45
|
+
*/
|
|
46
|
+
bind(client) {
|
|
47
|
+
for (const mod of this.items.values()) {
|
|
48
|
+
for (const [eventName, handler] of Object.entries(mod.events)) {
|
|
49
|
+
if (typeof handler !== "function") continue;
|
|
50
|
+
const listener = (...args) => {
|
|
51
|
+
void handler(client, ...args);
|
|
52
|
+
};
|
|
53
|
+
client.on(eventName, listener);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
module.exports = ModuleRegistry;
|
|
60
|
+
//# sourceMappingURL=module.registry.cjs.map
|
|
61
|
+
//# sourceMappingURL=module.registry.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/registry/module.registry.ts"],"names":["BaseRegistry","Collection","resolveUserPath","path","exists","fs","join"],"mappings":";;;;;;;;;;;;AAeA,MAAO,uBAAqCA,qBAAA,CAAqB;AAAA,EACtD,KAAA,GAAQ,IAAIC,qBAAA,EAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASjD,MAAM,KAAK,SAAA,GAAoBC,4BAAA,CAAgBC,sBAAK,IAAA,CAAK,KAAA,EAAO,SAAS,CAAC,CAAA,EAAkB;AAC3F,IAAA,IAAI,CAAE,MAAMC,mBAAA,CAAO,SAAS,CAAA,EAAI;AAC/B,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,OAAA,GAAU,MAAMC,WAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AAEnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAWC,SAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAC3C,MAAA,IAAI,CAAC,KAAA,CAAM,WAAA,EAAY,EAAG;AAE1B,MAAA,MAAM,WAAA,GAAA,CAAe,MAAMD,WAAA,CAAG,OAAA,CAAQ,QAAQ,CAAA,EAAG,MAAA;AAAA,QAChD,WACE,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,IAAK,KAAK,QAAA,CAAS,KAAK,CAAA,KAC5C,CAAC,KAAK,UAAA,CAAW,QAAQ,KACzB,CAAC,IAAA,CAAK,SAAS,OAAO;AAAA,OACxB;AAEA,MAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC/B,QAAA,MAAM,cAAc,MAAM,IAAA,CAAK,WAAmBC,SAAA,CAAK,QAAA,EAAU,IAAI,CAAC,CAAA;AACtE,QAAA,IAAI,CAAC,WAAA,IAAe,CAAC,WAAA,CAAY,MAAA,EAAQ;AAEzC,QAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,WAAA,CAAY,IAAA,EAAM,WAAW,CAAA;AAAA,MAC7C;AAAA,IACD;AAEA,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,MAAA,EAAwB;AAC5B,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,KAAA,CAAM,MAAA,EAAO,EAAG;AACtC,MAAA,KAAA,MAAW,CAAC,WAAW,OAAO,CAAA,IAAK,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAO,CAAA,EAAG;AAC/D,QAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AAEnC,QAAA,MAAM,QAAA,GAAW,IAAI,IAAA,KAAoB;AACxC,UAAA,KAAM,OAAA,CAAgE,MAAA,EAAQ,GAAG,IAAI,CAAA;AAAA,QACtF,CAAA;AAEA,QAAC,MAAA,CAAO,EAAA,CAAW,SAAA,EAAW,QAAQ,CAAA;AAAA,MACvC;AAAA,IACD;AAAA,EACD;AACD","file":"module.registry.cjs","sourcesContent":["import { Collection } from \"discord.js\";\nimport { exists, resolveUserPath } from \"src/shared/utility/functions.js\";\nimport { BaseRegistry, Module } from \"src/shared/typings/index.js\";\nimport { promises as fs } from \"fs\";\nimport path, { join } from \"node:path\";\nimport TriviousClient from \"../client/trivious.client.js\";\n\n/**\n * Registry to load, get and bind modules.\n *\n * @export\n * @class ModuleRegistry\n * @typedef {ModuleRegistry}\n * @extends {BaseRegistry<Module>}\n */\nexport default class ModuleRegistry extends BaseRegistry<Module> {\n\tprotected items = new Collection<string, Module>();\n\n\t/**\n\t * Load all modules.\n\t *\n\t * @async\n\t * @param {string} [directory=getCorePath({ coreDirectory: \"module\" })]\n\t * @returns {Promise<this>}\n\t */\n\tasync load(directory: string = resolveUserPath(path.join(\"src\", \"modules\"))): Promise<this> {\n\t\tif (!(await exists(directory))) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\t\t\tif (!entry.isDirectory()) continue;\n\n\t\t\tconst moduleFiles = (await fs.readdir(fullPath)).filter(\n\t\t\t\tfile =>\n\t\t\t\t\t(file.endsWith(\".ts\") || file.endsWith(\".js\")) &&\n\t\t\t\t\t!file.startsWith(\"index.\") &&\n\t\t\t\t\t!file.endsWith(\".d.ts\")\n\t\t\t);\n\n\t\t\tfor (const file of moduleFiles) {\n\t\t\t\tconst moduleEvent = await this.importFile<Module>(join(fullPath, file));\n\t\t\t\tif (!moduleEvent || !moduleEvent.events) continue;\n\n\t\t\t\tthis.items.set(moduleEvent.name, moduleEvent);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Bind all loaded modules to their client event respectively.\n\t *\n\t * @param {TriviousClient} client\n\t */\n\tbind(client: TriviousClient) {\n\t\tfor (const mod of this.items.values()) {\n\t\t\tfor (const [eventName, handler] of Object.entries(mod.events!)) {\n\t\t\t\tif (typeof handler !== \"function\") continue;\n\n\t\t\t\tconst listener = (...args: unknown[]) => {\n\t\t\t\t\tvoid (handler as (client: TriviousClient, ...args: unknown[]) => any)(client, ...args);\n\t\t\t\t};\n\n\t\t\t\t(client.on as any)(eventName, listener);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Collection } from 'discord.js';
|
|
2
|
+
import { resolveUserPath, exists } from '../../shared/utility/functions.js';
|
|
3
|
+
import { BaseRegistry } from '../../shared/typings/index.js';
|
|
4
|
+
import { promises } from 'fs';
|
|
5
|
+
import path, { join } from 'node:path';
|
|
6
|
+
|
|
7
|
+
class ModuleRegistry extends BaseRegistry {
|
|
8
|
+
items = new Collection();
|
|
9
|
+
/**
|
|
10
|
+
* Load all modules.
|
|
11
|
+
*
|
|
12
|
+
* @async
|
|
13
|
+
* @param {string} [directory=getCorePath({ coreDirectory: "module" })]
|
|
14
|
+
* @returns {Promise<this>}
|
|
15
|
+
*/
|
|
16
|
+
async load(directory = resolveUserPath(path.join("src", "modules"))) {
|
|
17
|
+
if (!await exists(directory)) {
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
const entries = await promises.readdir(directory, { withFileTypes: true });
|
|
21
|
+
for (const entry of entries) {
|
|
22
|
+
const fullPath = join(directory, entry.name);
|
|
23
|
+
if (!entry.isDirectory()) continue;
|
|
24
|
+
const moduleFiles = (await promises.readdir(fullPath)).filter(
|
|
25
|
+
(file) => (file.endsWith(".ts") || file.endsWith(".js")) && !file.startsWith("index.") && !file.endsWith(".d.ts")
|
|
26
|
+
);
|
|
27
|
+
for (const file of moduleFiles) {
|
|
28
|
+
const moduleEvent = await this.importFile(join(fullPath, file));
|
|
29
|
+
if (!moduleEvent || !moduleEvent.events) continue;
|
|
30
|
+
this.items.set(moduleEvent.name, moduleEvent);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Bind all loaded modules to their client event respectively.
|
|
37
|
+
*
|
|
38
|
+
* @param {TriviousClient} client
|
|
39
|
+
*/
|
|
40
|
+
bind(client) {
|
|
41
|
+
for (const mod of this.items.values()) {
|
|
42
|
+
for (const [eventName, handler] of Object.entries(mod.events)) {
|
|
43
|
+
if (typeof handler !== "function") continue;
|
|
44
|
+
const listener = (...args) => {
|
|
45
|
+
void handler(client, ...args);
|
|
46
|
+
};
|
|
47
|
+
client.on(eventName, listener);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { ModuleRegistry as default };
|
|
54
|
+
//# sourceMappingURL=module.registry.js.map
|
|
55
|
+
//# sourceMappingURL=module.registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/registry/module.registry.ts"],"names":["fs"],"mappings":";;;;;;AAeA,MAAO,uBAAqC,YAAA,CAAqB;AAAA,EACtD,KAAA,GAAQ,IAAI,UAAA,EAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASjD,MAAM,KAAK,SAAA,GAAoB,eAAA,CAAgB,KAAK,IAAA,CAAK,KAAA,EAAO,SAAS,CAAC,CAAA,EAAkB;AAC3F,IAAA,IAAI,CAAE,MAAM,MAAA,CAAO,SAAS,CAAA,EAAI;AAC/B,MAAA,OAAO,IAAA;AAAA,IACR;AAEA,IAAA,MAAM,OAAA,GAAU,MAAMA,QAAA,CAAG,OAAA,CAAQ,WAAW,EAAE,aAAA,EAAe,MAAM,CAAA;AAEnE,IAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC5B,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,SAAA,EAAW,KAAA,CAAM,IAAI,CAAA;AAC3C,MAAA,IAAI,CAAC,KAAA,CAAM,WAAA,EAAY,EAAG;AAE1B,MAAA,MAAM,WAAA,GAAA,CAAe,MAAMA,QAAA,CAAG,OAAA,CAAQ,QAAQ,CAAA,EAAG,MAAA;AAAA,QAChD,WACE,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,IAAK,KAAK,QAAA,CAAS,KAAK,CAAA,KAC5C,CAAC,KAAK,UAAA,CAAW,QAAQ,KACzB,CAAC,IAAA,CAAK,SAAS,OAAO;AAAA,OACxB;AAEA,MAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC/B,QAAA,MAAM,cAAc,MAAM,IAAA,CAAK,WAAmB,IAAA,CAAK,QAAA,EAAU,IAAI,CAAC,CAAA;AACtE,QAAA,IAAI,CAAC,WAAA,IAAe,CAAC,WAAA,CAAY,MAAA,EAAQ;AAEzC,QAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,WAAA,CAAY,IAAA,EAAM,WAAW,CAAA;AAAA,MAC7C;AAAA,IACD;AAEA,IAAA,OAAO,IAAA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,MAAA,EAAwB;AAC5B,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,KAAA,CAAM,MAAA,EAAO,EAAG;AACtC,MAAA,KAAA,MAAW,CAAC,WAAW,OAAO,CAAA,IAAK,OAAO,OAAA,CAAQ,GAAA,CAAI,MAAO,CAAA,EAAG;AAC/D,QAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AAEnC,QAAA,MAAM,QAAA,GAAW,IAAI,IAAA,KAAoB;AACxC,UAAA,KAAM,OAAA,CAAgE,MAAA,EAAQ,GAAG,IAAI,CAAA;AAAA,QACtF,CAAA;AAEA,QAAC,MAAA,CAAO,EAAA,CAAW,SAAA,EAAW,QAAQ,CAAA;AAAA,MACvC;AAAA,IACD;AAAA,EACD;AACD","file":"module.registry.js","sourcesContent":["import { Collection } from \"discord.js\";\nimport { exists, resolveUserPath } from \"src/shared/utility/functions.js\";\nimport { BaseRegistry, Module } from \"src/shared/typings/index.js\";\nimport { promises as fs } from \"fs\";\nimport path, { join } from \"node:path\";\nimport TriviousClient from \"../client/trivious.client.js\";\n\n/**\n * Registry to load, get and bind modules.\n *\n * @export\n * @class ModuleRegistry\n * @typedef {ModuleRegistry}\n * @extends {BaseRegistry<Module>}\n */\nexport default class ModuleRegistry extends BaseRegistry<Module> {\n\tprotected items = new Collection<string, Module>();\n\n\t/**\n\t * Load all modules.\n\t *\n\t * @async\n\t * @param {string} [directory=getCorePath({ coreDirectory: \"module\" })]\n\t * @returns {Promise<this>}\n\t */\n\tasync load(directory: string = resolveUserPath(path.join(\"src\", \"modules\"))): Promise<this> {\n\t\tif (!(await exists(directory))) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst entries = await fs.readdir(directory, { withFileTypes: true });\n\n\t\tfor (const entry of entries) {\n\t\t\tconst fullPath = join(directory, entry.name);\n\t\t\tif (!entry.isDirectory()) continue;\n\n\t\t\tconst moduleFiles = (await fs.readdir(fullPath)).filter(\n\t\t\t\tfile =>\n\t\t\t\t\t(file.endsWith(\".ts\") || file.endsWith(\".js\")) &&\n\t\t\t\t\t!file.startsWith(\"index.\") &&\n\t\t\t\t\t!file.endsWith(\".d.ts\")\n\t\t\t);\n\n\t\t\tfor (const file of moduleFiles) {\n\t\t\t\tconst moduleEvent = await this.importFile<Module>(join(fullPath, file));\n\t\t\t\tif (!moduleEvent || !moduleEvent.events) continue;\n\n\t\t\t\tthis.items.set(moduleEvent.name, moduleEvent);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Bind all loaded modules to their client event respectively.\n\t *\n\t * @param {TriviousClient} client\n\t */\n\tbind(client: TriviousClient) {\n\t\tfor (const mod of this.items.values()) {\n\t\t\tfor (const [eventName, handler] of Object.entries(mod.events!)) {\n\t\t\t\tif (typeof handler !== \"function\") continue;\n\n\t\t\t\tconst listener = (...args: unknown[]) => {\n\t\t\t\t\tvoid (handler as (client: TriviousClient, ...args: unknown[]) => any)(client, ...args);\n\t\t\t\t};\n\n\t\t\t\t(client.on as any)(eventName, listener);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|