@mostfeatured/dbi 0.0.37 → 0.0.38
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/Events.d.ts +5 -0
- package/dist/Events.d.ts.map +1 -1
- package/dist/Events.js.map +1 -1
- package/dist/methods/hookEventListeners.d.ts.map +1 -1
- package/dist/methods/hookEventListeners.js +28 -3
- package/dist/methods/hookEventListeners.js.map +1 -1
- package/dist/types/Event.d.ts +6 -0
- package/dist/types/Event.d.ts.map +1 -1
- package/dist/types/Event.js +2 -0
- package/dist/types/Event.js.map +1 -1
- package/package.json +2 -2
- package/src/Events.ts +2 -1
- package/src/methods/hookEventListeners.ts +31 -4
- package/src/types/Event.ts +4 -1
package/dist/Events.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DBI } from "./DBI";
|
|
2
2
|
import { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from "./types/Interaction";
|
|
3
|
+
import { DBILocale } from "./types/Locale";
|
|
3
4
|
export declare type TDBIEventNames = "beforeInteraction" | "afterInteraction" | "interactionRateLimit" | "beforeEvent" | "afterEvent";
|
|
4
5
|
export declare class Events {
|
|
5
6
|
DBI: DBI;
|
|
@@ -12,6 +13,10 @@ export declare class Events {
|
|
|
12
13
|
on(eventName: "beforeEvent" | "afterEvent", handler: (data: {
|
|
13
14
|
[key: string]: any;
|
|
14
15
|
other: Record<string, any>;
|
|
16
|
+
locale?: {
|
|
17
|
+
guild: DBILocale;
|
|
18
|
+
};
|
|
19
|
+
eventName: string;
|
|
15
20
|
}) => Promise<boolean> | boolean, options?: {
|
|
16
21
|
once: boolean;
|
|
17
22
|
}): (() => any);
|
package/dist/Events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,oBAAY,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,aAAa,GAAG,YAAY,CAAC;AAE9H,qBAAa,MAAM;IACjB,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/D,GAAG,EAAE,GAAG;IAYd,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAWhE,EAAE,CACA,SAAS,EAAE,mBAAmB,GAAG,kBAAkB,EACnD,OAAO,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EACjE,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAC1B,CAAC,MAAM,GAAG,CAAC;IAEd,EAAE,CACA,SAAS,EAAE,aAAa,GAAG,YAAY,EACvC,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,SAAS,CAAA;SAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EACnJ,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAC1B,CAAC,MAAM,GAAG,CAAC;IAEd,EAAE,CACA,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,cAAc,CAAC,GAAG;QAAE,SAAS,EAAE;YAAE,IAAI,EAAE,kBAAkB,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EAC7K,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAC1B,CAAC,MAAM,GAAG,CAAC;IAoBd,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;CAIlF"}
|
package/dist/Events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAMA,MAAa,MAAM;IACjB,GAAG,CAAM;IACT,QAAQ,CAAmE;IAC3E,YAAY,GAAQ;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG;YACd,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,EAAE;YACpB,oBAAoB,EAAE,EAAE;YACxB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;SACf,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,IAAS;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAqBD,EAAE,CAAC,SAAyB,EAAE,OAAkD,EAAE,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAC5H,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,SAAgB,EAAE,CAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzB,CAAC,CAAA;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAA;SACF;IACH,CAAC;IAED,GAAG,CAAC,SAAyB,EAAE,OAAkD;QAC/E,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;CACF;AAlED,wBAkEC","sourcesContent":["import { DBI } from \"./DBI\";\r\nimport { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from \"./types/Interaction\";\r\nimport { DBILocale } from \"./types/Locale\";\r\n\r\nexport type TDBIEventNames = \"beforeInteraction\" | \"afterInteraction\" | \"interactionRateLimit\" | \"beforeEvent\" | \"afterEvent\";\r\n\r\nexport class Events {\r\n DBI: DBI;\r\n handlers: Record<string, Array<(data: any) => boolean | Promise<boolean>>>;\r\n constructor(DBI: DBI) {\r\n this.DBI = DBI;\r\n\r\n this.handlers = {\r\n beforeInteraction: [],\r\n afterInteraction: [],\r\n interactionRateLimit: [],\r\n beforeEvent: [],\r\n afterEvent: []\r\n }\r\n }\r\n \r\n async trigger(name: TDBIEventNames, data: any): Promise<boolean>{\r\n let handlers = this.handlers[name];\r\n for (let i = 0; i < handlers.length; i++) {\r\n const handler = handlers[i];\r\n let returned = await handler(data);\r\n if (returned !== true) return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n on(\r\n eventName: \"beforeInteraction\" | \"afterInteraction\",\r\n handler: (data: IDBIBaseExecuteCtx) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"beforeEvent\" | \"afterEvent\",\r\n handler: (data: { [key: string]: any, other: Record<string, any>, locale?: { guild: DBILocale }, eventName: string }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"interactionRateLimit\",\r\n handler: (data: Omit<IDBIBaseExecuteCtx, \"other\" | \"setRateLimit\"> & { rateLimit: { type: TDBIRateLimitTypes, duration: number, at: number } }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(eventName: TDBIEventNames, handler: (data: any) => Promise<boolean> | boolean, options: { once: boolean } = { once: false }): (() => any) {\r\n if (options.once) {\r\n let h = (data) => {\r\n this.off(eventName, h);\r\n return handler(data);\r\n };\r\n this.on(eventName as any, h as any, { once: false });\r\n return () => {\r\n this.off(eventName, h);\r\n }\r\n } else {\r\n this.handlers[eventName].push(handler);\r\n return () => {\r\n this.off(eventName, handler);\r\n }\r\n }\r\n }\r\n\r\n off(eventName: TDBIEventNames, handler: (data: any) => Promise<boolean> | boolean) {\r\n let l = this.handlers[eventName];\r\n l.splice(l.indexOf(handler), 1);\r\n }\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookEventListeners.d.ts","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hookEventListeners.d.ts","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,CA6DtD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hookEventListeners = void 0;
|
|
4
|
+
const discord_js_1 = require("discord.js");
|
|
4
5
|
function hookEventListeners(dbi) {
|
|
5
6
|
async function handle(eventName, ...args) {
|
|
6
7
|
if (!dbi.data.eventMap[eventName])
|
|
@@ -11,15 +12,39 @@ function hookEventListeners(dbi) {
|
|
|
11
12
|
return all;
|
|
12
13
|
}, {});
|
|
13
14
|
let other = {};
|
|
14
|
-
|
|
15
|
+
let guildLocaleName = args.reduce((all, current) => {
|
|
16
|
+
if (current?.guild?.id)
|
|
17
|
+
return current?.guild?.preferredLocale?.split?.("-")?.[0];
|
|
18
|
+
if (current instanceof discord_js_1.Guild)
|
|
19
|
+
return current?.preferredLocale?.split?.("-")?.[0];
|
|
20
|
+
return all;
|
|
21
|
+
}, null);
|
|
22
|
+
let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;
|
|
23
|
+
let locale = guildLocale ? { guild: guildLocale } : null;
|
|
24
|
+
if (!await dbi.events.trigger("beforeEvent", { eventName, ...ctxArgs, other, locale }))
|
|
15
25
|
return;
|
|
26
|
+
let ordered = [];
|
|
27
|
+
let unOrdered = [];
|
|
16
28
|
for (let i = 0; i < dbi.data.events.size; i++) {
|
|
17
29
|
const value = dbi.data.events.at(i);
|
|
18
30
|
if (value.name == eventName) {
|
|
19
|
-
|
|
31
|
+
if (value.ordered) {
|
|
32
|
+
ordered.push(value);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
unOrdered.push(value);
|
|
36
|
+
}
|
|
20
37
|
}
|
|
21
38
|
}
|
|
22
|
-
|
|
39
|
+
for (let i = 0; i < unOrdered.length; i++) {
|
|
40
|
+
const value = unOrdered[i];
|
|
41
|
+
value.onExecute({ eventName, ...ctxArgs, other, locale });
|
|
42
|
+
}
|
|
43
|
+
for (let i = 0; i < ordered.length; i++) {
|
|
44
|
+
const value = ordered[i];
|
|
45
|
+
await value.onExecute({ eventName, ...ctxArgs, other, locale });
|
|
46
|
+
}
|
|
47
|
+
dbi.events.trigger("afterEvent", { eventName, ...ctxArgs, other, locale });
|
|
23
48
|
}
|
|
24
49
|
let originalEmit = dbi.client.emit;
|
|
25
50
|
dbi.client.emit = function (eventName, ...args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookEventListeners.js","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"hookEventListeners.js","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { Guild } from \"discord.js\";\r\nimport { DBI } from \"../DBI\";\r\n\r\nexport function hookEventListeners(dbi: DBI): () => any {\r\n async function handle(eventName: string, ...args: any[]) {\r\n if (!dbi.data.eventMap[eventName]) return;\r\n\r\n let ctxArgs =\r\n dbi.data.eventMap[eventName]\r\n .reduce((all, current, index) => {\r\n all[current] = args[index];\r\n return all;\r\n }, {});\r\n\r\n let other = {};\r\n\r\n \r\n let guildLocaleName = args.reduce((all, current) => {\r\n if (current?.guild?.id) return current?.guild?.preferredLocale?.split?.(\"-\")?.[0];\r\n if (current instanceof Guild) return current?.preferredLocale?.split?.(\"-\")?.[0];\r\n return all;\r\n }, null);\r\n let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;\r\n \r\n let locale = guildLocale ? { guild: guildLocale } : null;\r\n \r\n if (!await dbi.events.trigger(\"beforeEvent\", { eventName, ...ctxArgs, other, locale })) return;\r\n \r\n let ordered = [];\r\n let unOrdered = [];\r\n for (let i = 0; i < dbi.data.events.size; i++) {\r\n const value = dbi.data.events.at(i);\r\n if (value.name == eventName) {\r\n if (value.ordered) {\r\n ordered.push(value);\r\n } else {\r\n unOrdered.push(value);\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < unOrdered.length; i++) {\r\n const value = unOrdered[i];\r\n value.onExecute({ eventName, ...ctxArgs, other, locale });\r\n }\r\n\r\n for (let i = 0; i < ordered.length; i++) {\r\n const value = ordered[i];\r\n await value.onExecute({ eventName, ...ctxArgs, other, locale });\r\n }\r\n\r\n dbi.events.trigger(\"afterEvent\", { eventName, ...ctxArgs, other, locale })\r\n }\r\n\r\n let originalEmit = dbi.client.emit;\r\n\r\n dbi.client.emit = function(eventName, ...args) {\r\n handle(eventName, ...args);\r\n return originalEmit.call(this, eventName, ...args);\r\n }\r\n\r\n return () => {\r\n dbi.client.emit = originalEmit;\r\n }\r\n}"]}
|
package/dist/types/Event.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Discord from "discord.js";
|
|
2
2
|
import { DBI } from "../DBI";
|
|
3
|
+
import { DBILocale } from "./Locale";
|
|
3
4
|
export interface ClientEvents {
|
|
4
5
|
applicationCommandPermissionsUpdate: {
|
|
5
6
|
data: Discord.ApplicationCommandPermissionsUpdateData;
|
|
@@ -241,6 +242,10 @@ export declare type DBIEventCombinations = {
|
|
|
241
242
|
name: K;
|
|
242
243
|
onExecute: (ctx: ClientEvents[K] & {
|
|
243
244
|
other: Record<string, any>;
|
|
245
|
+
locale?: {
|
|
246
|
+
guild: DBILocale;
|
|
247
|
+
};
|
|
248
|
+
eventName: string;
|
|
244
249
|
}) => Promise<any> | any;
|
|
245
250
|
};
|
|
246
251
|
}[keyof ClientEvents];
|
|
@@ -251,6 +256,7 @@ export declare class DBIEvent {
|
|
|
251
256
|
id?: string;
|
|
252
257
|
name: string;
|
|
253
258
|
onExecute: (...args: any[]) => any;
|
|
259
|
+
ordered?: boolean;
|
|
254
260
|
dbi: DBI;
|
|
255
261
|
constructor(dbi: DBI, cfg: TDBIEventOmitted);
|
|
256
262
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../src/types/Event.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../src/types/Event.ts"],"names":[],"mappings":"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"}
|
package/dist/types/Event.js
CHANGED
|
@@ -7,6 +7,7 @@ class DBIEvent {
|
|
|
7
7
|
id;
|
|
8
8
|
name;
|
|
9
9
|
onExecute;
|
|
10
|
+
ordered;
|
|
10
11
|
dbi;
|
|
11
12
|
constructor(dbi, cfg) {
|
|
12
13
|
this.dbi = dbi;
|
|
@@ -15,6 +16,7 @@ class DBIEvent {
|
|
|
15
16
|
this.other = cfg.other;
|
|
16
17
|
this.name = cfg.name;
|
|
17
18
|
this.onExecute = cfg.onExecute;
|
|
19
|
+
this.ordered = cfg.ordered ?? false;
|
|
18
20
|
}
|
|
19
21
|
}
|
|
20
22
|
exports.DBIEvent = DBIEvent;
|
package/dist/types/Event.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/types/Event.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Event.js","sourceRoot":"","sources":["../../src/types/Event.ts"],"names":[],"mappings":";;;AAoGA,MAAa,QAAQ;IACV,IAAI,CAAU;IACvB,KAAK,CAAuB;IAC5B,EAAE,CAAU;IACZ,IAAI,CAAS;IACb,SAAS,CAA0B;IACnC,OAAO,CAAW;IAClB,GAAG,CAAM;IACT,YAAY,GAAQ,EAAE,GAAqB;QACzC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,CAAC;CACF;AAjBD,4BAiBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBILocale } from \"./Locale\";\r\n\r\nexport interface ClientEvents {\r\n applicationCommandPermissionsUpdate: { data: Discord.ApplicationCommandPermissionsUpdateData };\r\n cacheSweep: { message: string };\r\n channelCreate: { channel: Discord.NonThreadGuildBasedChannel };\r\n channelDelete: { channel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel };\r\n channelPinsUpdate: { channel: Discord.TextBasedChannel, date: Date };\r\n channelUpdate: {\r\n oldChannel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel,\r\n newChannel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel,\r\n };\r\n debug: { message: string };\r\n warn: { message: string };\r\n emojiCreate: { emoji: Discord.GuildEmoji };\r\n emojiDelete: { emoji: Discord.GuildEmoji };\r\n emojiUpdate: { oldEmoji: Discord.GuildEmoji, newEmoji: Discord.GuildEmoji };\r\n error: { error: Error };\r\n guildBanAdd: { ban: Discord.GuildBan };\r\n guildBanRemove: { ban: Discord.GuildBan };\r\n guildCreate: { guild: Discord.Guild };\r\n guildDelete: { guild: Discord.Guild };\r\n guildUnavailable: { guild: Discord.Guild };\r\n guildIntegrationsUpdate: { guild: Discord.Guild };\r\n guildMemberAdd: { member: Discord.GuildMember };\r\n guildMemberAvailable: { member: Discord.GuildMember | Discord.PartialGuildMember };\r\n guildMemberRemove: { member: Discord.GuildMember | Discord.PartialGuildMember };\r\n guildMembersChunk: {\r\n members: Discord.Collection<Discord.Snowflake, Discord.GuildMember>,\r\n guild: Discord.Guild,\r\n data: { count: number; index: number; nonce: string | undefined },\r\n };\r\n guildMemberUpdate: { oldMember: Discord.GuildMember | Discord.PartialGuildMember, newMember: Discord.GuildMember };\r\n guildUpdate: { oldGuild: Discord.Guild, newGuild: Discord.Guild };\r\n inviteCreate: { invite: Discord.Invite };\r\n inviteDelete: { invite: Discord.Invite };\r\n messageCreate: { message: Discord.Message };\r\n messageDelete: { message: Discord.Message | Discord.PartialMessage };\r\n messageReactionRemoveAll: {\r\n message: Discord.Message | Discord.PartialMessage,\r\n reactions: Discord.Collection<string | Discord.Snowflake, Discord.MessageReaction>,\r\n };\r\n messageReactionRemoveEmoji: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction };\r\n messageDeleteBulk: { messages: Discord.Collection<Discord.Snowflake, Discord.Message | Discord.PartialMessage>, channel: Discord.TextBasedChannel };\r\n messageReactionAdd: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction, user: Discord.User | Discord.PartialUser };\r\n messageReactionRemove: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction, user: Discord.User | Discord.PartialUser };\r\n messageUpdate: { oldMessage: Discord.Message | Discord.PartialMessage, newMessage: Discord.Message | Discord.PartialMessage };\r\n presenceUpdate: { oldPresence: Discord.Presence | null, newPresence: Discord.Presence };\r\n ready: { client: Discord.Client<true> };\r\n invalidated: {};\r\n roleCreate: { role: Discord.Role };\r\n roleDelete: { role: Discord.Role };\r\n roleUpdate: { oldRole: Discord.Role, newRole: Discord.Role };\r\n threadCreate: { thread: Discord.AnyThreadChannel, newlyCreated: boolean };\r\n threadDelete: { thread: Discord.AnyThreadChannel };\r\n threadListSync: { threads: Discord.Collection<Discord.Snowflake, Discord.AnyThreadChannel>, guild: Discord.Guild };\r\n threadMemberUpdate: { oldMember: Discord.ThreadMember, newMember: Discord.ThreadMember };\r\n threadMembersUpdate: {\r\n addedMembers: Discord.Collection<Discord.Snowflake, Discord.ThreadMember>,\r\n removedMembers: Discord.Collection<Discord.Snowflake, Discord.ThreadMember | Discord.PartialThreadMember>,\r\n thread: Discord.AnyThreadChannel,\r\n };\r\n threadUpdate: { oldThread: Discord.AnyThreadChannel, newThread: Discord.AnyThreadChannel };\r\n typingStart: { typing: Discord.Typing };\r\n userUpdate: { oldUser: Discord.User | Discord.PartialUser, newUser: Discord.User };\r\n voiceStateUpdate: { oldState: Discord.VoiceState, newState: Discord.VoiceState };\r\n webhookUpdate: { channel: Discord.TextChannel | Discord.NewsChannel | Discord.VoiceChannel };\r\n interactionCreate: { interaction: Discord.Interaction };\r\n shardDisconnect: { closeEvent: Discord.CloseEvent, shardId: number };\r\n shardError: { error: Error, shardId: number };\r\n shardReady: { shardId: number, unavailableGuilds: Set<Discord.Snowflake> | undefined };\r\n shardReconnecting: { shardId: number };\r\n shardResume: { shardId: number, replayedEvents: number };\r\n stageInstanceCreate: { stageInstance: Discord.StageInstance };\r\n stageInstanceUpdate: { oldStageInstance: Discord.StageInstance | null, newStageInstance: Discord.StageInstance };\r\n stageInstanceDelete: { stageInstance: Discord.StageInstance };\r\n stickerCreate: { sticker: Discord.Sticker };\r\n stickerDelete: { sticker: Discord.Sticker };\r\n stickerUpdate: { oldSticker: Discord.Sticker, newSticker: Discord.Sticker };\r\n guildScheduledEventCreate: { guildScheduledEvent: Discord.GuildScheduledEvent };\r\n guildScheduledEventUpdate: {\r\n oldGuildScheduledEvent: Discord.GuildScheduledEvent | null,\r\n newGuildScheduledEvent: Discord.GuildScheduledEvent,\r\n };\r\n guildScheduledEventDelete: { guildScheduledEvent: Discord.GuildScheduledEvent };\r\n guildScheduledEventUserAdd: { guildScheduledEvent: Discord.GuildScheduledEvent, user: Discord.User };\r\n guildScheduledEventUserRemove: { guildScheduledEvent: Discord.GuildScheduledEvent, user: Discord.User };\r\n}\r\n\r\nexport type DBIEventCombinations = {\r\n [K in keyof ClientEvents]: {\r\n name: K,\r\n onExecute: (ctx: ClientEvents[K] & { other: Record<string, any>, locale?: { guild: DBILocale }, eventName: string }) => Promise<any> | any\r\n }\r\n}[keyof ClientEvents];\r\n\r\nexport type TDBIEventOmitted = Omit<DBIEvent, \"type\" | \"name\" | \"onExecute\" | \"client\" | \"dbi\"> & DBIEventCombinations;\r\n\r\nexport class DBIEvent {\r\n readonly type: \"Event\";\r\n other?: Record<string, any>;\r\n id?: string;\r\n name: string;\r\n onExecute: (...args: any[]) => any;\r\n ordered?: boolean;\r\n dbi: DBI;\r\n constructor(dbi: DBI, cfg: TDBIEventOmitted) {\r\n this.dbi = dbi;\r\n this.type = \"Event\";\r\n this.id = cfg.id;\r\n this.other = cfg.other;\r\n this.name = cfg.name;\r\n this.onExecute = cfg.onExecute;\r\n this.ordered = cfg.ordered ?? false;\r\n }\r\n}"]}
|
package/package.json
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"@discordjs/rest": "^1.0.1",
|
|
4
4
|
"discord-api-types": "^0.37.0",
|
|
5
5
|
"discord-hybrid-sharding": "^1.7.4",
|
|
6
|
-
"discord.js": "^14.
|
|
6
|
+
"discord.js": "^14.4.0",
|
|
7
7
|
"lodash": "^4.17.21",
|
|
8
8
|
"snakecase-keys": "^5.4.2",
|
|
9
9
|
"stuffs": "^0.1.17"
|
|
10
10
|
},
|
|
11
11
|
"name": "@mostfeatured/dbi",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.38",
|
|
13
13
|
"main": "dist/index.js",
|
|
14
14
|
"type": "commonjs",
|
|
15
15
|
"private": false,
|
package/src/Events.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DBI } from "./DBI";
|
|
2
2
|
import { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from "./types/Interaction";
|
|
3
|
+
import { DBILocale } from "./types/Locale";
|
|
3
4
|
|
|
4
5
|
export type TDBIEventNames = "beforeInteraction" | "afterInteraction" | "interactionRateLimit" | "beforeEvent" | "afterEvent";
|
|
5
6
|
|
|
@@ -37,7 +38,7 @@ export class Events {
|
|
|
37
38
|
|
|
38
39
|
on(
|
|
39
40
|
eventName: "beforeEvent" | "afterEvent",
|
|
40
|
-
handler: (data: { [key: string]: any, other: Record<string, any
|
|
41
|
+
handler: (data: { [key: string]: any, other: Record<string, any>, locale?: { guild: DBILocale }, eventName: string }) => Promise<boolean> | boolean,
|
|
41
42
|
options?: { once: boolean }
|
|
42
43
|
): (() => any);
|
|
43
44
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Guild } from "discord.js";
|
|
1
2
|
import { DBI } from "../DBI";
|
|
2
3
|
|
|
3
4
|
export function hookEventListeners(dbi: DBI): () => any {
|
|
@@ -13,16 +14,42 @@ export function hookEventListeners(dbi: DBI): () => any {
|
|
|
13
14
|
|
|
14
15
|
let other = {};
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
|
|
18
|
+
let guildLocaleName = args.reduce((all, current) => {
|
|
19
|
+
if (current?.guild?.id) return current?.guild?.preferredLocale?.split?.("-")?.[0];
|
|
20
|
+
if (current instanceof Guild) return current?.preferredLocale?.split?.("-")?.[0];
|
|
21
|
+
return all;
|
|
22
|
+
}, null);
|
|
23
|
+
let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;
|
|
24
|
+
|
|
25
|
+
let locale = guildLocale ? { guild: guildLocale } : null;
|
|
26
|
+
|
|
27
|
+
if (!await dbi.events.trigger("beforeEvent", { eventName, ...ctxArgs, other, locale })) return;
|
|
28
|
+
|
|
29
|
+
let ordered = [];
|
|
30
|
+
let unOrdered = [];
|
|
18
31
|
for (let i = 0; i < dbi.data.events.size; i++) {
|
|
19
32
|
const value = dbi.data.events.at(i);
|
|
20
33
|
if (value.name == eventName) {
|
|
21
|
-
|
|
34
|
+
if (value.ordered) {
|
|
35
|
+
ordered.push(value);
|
|
36
|
+
} else {
|
|
37
|
+
unOrdered.push(value);
|
|
38
|
+
}
|
|
22
39
|
}
|
|
23
40
|
}
|
|
24
41
|
|
|
25
|
-
|
|
42
|
+
for (let i = 0; i < unOrdered.length; i++) {
|
|
43
|
+
const value = unOrdered[i];
|
|
44
|
+
value.onExecute({ eventName, ...ctxArgs, other, locale });
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
for (let i = 0; i < ordered.length; i++) {
|
|
48
|
+
const value = ordered[i];
|
|
49
|
+
await value.onExecute({ eventName, ...ctxArgs, other, locale });
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
dbi.events.trigger("afterEvent", { eventName, ...ctxArgs, other, locale })
|
|
26
53
|
}
|
|
27
54
|
|
|
28
55
|
let originalEmit = dbi.client.emit;
|
package/src/types/Event.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Discord from "discord.js";
|
|
2
2
|
import { DBI } from "../DBI";
|
|
3
|
+
import { DBILocale } from "./Locale";
|
|
3
4
|
|
|
4
5
|
export interface ClientEvents {
|
|
5
6
|
applicationCommandPermissionsUpdate: { data: Discord.ApplicationCommandPermissionsUpdateData };
|
|
@@ -91,7 +92,7 @@ export interface ClientEvents {
|
|
|
91
92
|
export type DBIEventCombinations = {
|
|
92
93
|
[K in keyof ClientEvents]: {
|
|
93
94
|
name: K,
|
|
94
|
-
onExecute: (ctx: ClientEvents[K] & { other: Record<string, any
|
|
95
|
+
onExecute: (ctx: ClientEvents[K] & { other: Record<string, any>, locale?: { guild: DBILocale }, eventName: string }) => Promise<any> | any
|
|
95
96
|
}
|
|
96
97
|
}[keyof ClientEvents];
|
|
97
98
|
|
|
@@ -103,6 +104,7 @@ export class DBIEvent {
|
|
|
103
104
|
id?: string;
|
|
104
105
|
name: string;
|
|
105
106
|
onExecute: (...args: any[]) => any;
|
|
107
|
+
ordered?: boolean;
|
|
106
108
|
dbi: DBI;
|
|
107
109
|
constructor(dbi: DBI, cfg: TDBIEventOmitted) {
|
|
108
110
|
this.dbi = dbi;
|
|
@@ -111,5 +113,6 @@ export class DBIEvent {
|
|
|
111
113
|
this.other = cfg.other;
|
|
112
114
|
this.name = cfg.name;
|
|
113
115
|
this.onExecute = cfg.onExecute;
|
|
116
|
+
this.ordered = cfg.ordered ?? false;
|
|
114
117
|
}
|
|
115
118
|
}
|