@mostfeatured/dbi 0.0.36 → 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/methods/publishInteractions.js +2 -2
- package/dist/methods/publishInteractions.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/methods/publishInteractions.ts +2 -2
- 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}"]}
|
|
@@ -159,11 +159,11 @@ async function publishInteractions(clientToken, interactions, interactionsLocale
|
|
|
159
159
|
return all;
|
|
160
160
|
}, []);
|
|
161
161
|
switch (publishType) {
|
|
162
|
-
case "
|
|
162
|
+
case "Guild": {
|
|
163
163
|
await rest.put(v9_1.Routes.applicationGuildCommands(me.id, guildId), { body });
|
|
164
164
|
break;
|
|
165
165
|
}
|
|
166
|
-
case "
|
|
166
|
+
case "Global": {
|
|
167
167
|
await rest.put(v9_1.Routes.applicationCommands(me.id), { body });
|
|
168
168
|
break;
|
|
169
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishInteractions.js","sourceRoot":"","sources":["../../src/methods/publishInteractions.ts"],"names":[],"mappings":"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","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBIChatInput } from \"../types/ChatInput/ChatInput\";\r\nimport { REST } from \"@discordjs/rest\";\r\nimport { Routes, RESTGetAPIUserResult, RESTPutAPIApplicationCommandsJSONBody, ApplicationCommandType, ApplicationCommandOptionType } from \"discord-api-types/v9\";\r\nimport { reducePermissions } from \"../utils/permissions\";\r\nimport snakecaseKeys from \"snakecase-keys\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIInteractionLocale } from \"../types/InteractionLocale\";\r\n\r\nconst PUBLISHABLE_TYPES = [\"ChatInput\", \"UserContextMenu\", \"MessageContextMenu\"];\r\nconst ORIGINAL_LOCALES = [\"da\", \"de\", \"en-GB\", \"en-US\", \"es-ES\", \"fr\", \"hr\", \"it\", \"lt\", \"hu\", \"nl\", \"no\", \"pl\", \"pt-BR\", \"ro\", \"fi\", \"sv-SE\", \"vi\", \"tr\", \"cs\", \"el\", \"bg\", \"ru\", \"uk\", \"hi\", \"th\", \"zh-CN\", \"ja\", \"zh-TW\", \"ko\"];\r\n\r\nexport async function publishInteractions(\r\n clientToken: string,\r\n interactions: Discord.Collection<string, DBIChatInput>,\r\n interactionsLocales: Discord.Collection<string, DBIInteractionLocale>,\r\n publishType: \"Guild\" | \"Global\",\r\n guildId?: string\r\n) {\r\n interactions = interactions.filter(i => PUBLISHABLE_TYPES.includes(i.type));\r\n\r\n const rest = new REST({ version: \"9\" });\r\n rest.setToken(clientToken);\r\n\r\n const me: RESTGetAPIUserResult = await rest.get(Routes.user()) as any;\r\n interactions = interactions.sort((a, b) => b.name.split(\" \").length - a.name.split(\" \").length);\r\n\r\n let body: RESTPutAPIApplicationCommandsJSONBody =\r\n interactions.reduce((all, current) => {\r\n switch (current.type) {\r\n case \"ChatInput\": {\r\n let nameSplitted = current.name.split(\" \");\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n switch (nameSplitted.length) {\r\n case 1: {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n description: current.description,\r\n name: nameSplitted[0],\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(0),\r\n description_localizations: localeData.descriptionLocales,\r\n });\r\n break;\r\n }\r\n case 2: {\r\n let baseItem = all.find(i => i.name == current.name.split(\" \")[0] && i.type == ApplicationCommandType.ChatInput);\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n let option = {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[1],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(1),\r\n description_localizations: localeData.descriptionLocales,\r\n };\r\n if (!baseItem) {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n name: nameSplitted[0],\r\n name_localizations: localeData.nameLocales(0),\r\n description: \"...\",\r\n options: [\r\n option\r\n ]\r\n });\r\n } else {\r\n baseItem.options.push(option);\r\n }\r\n break;\r\n }\r\n case 3: {\r\n let level1Item = all.find(i => i.name == current.name.split(\" \")[0] && i.type == ApplicationCommandType.ChatInput);\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n if (!level1Item) {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n name: nameSplitted[0],\r\n name_localizations: localeData.nameLocales(0),\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.SubcommandGroup,\r\n name: nameSplitted[1],\r\n name_localizations: localeData.nameLocales(1),\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(2),\r\n description_localizations: localeData.descriptionLocales,\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n } else {\r\n let level2Item = level1Item.options.find(i => i.name == current.name.split(\" \")[1]);\r\n if (!level2Item) {\r\n level1Item.options.push({\r\n type: ApplicationCommandOptionType.SubcommandGroup,\r\n name: nameSplitted[1],\r\n name_localizations: localeData.nameLocales(1),\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(2),\r\n description_localizations: localeData.descriptionLocales\r\n }\r\n ]\r\n })\r\n } else {\r\n level2Item.options.push({\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(2),\r\n description_localizations: localeData.descriptionLocales,\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case \"MessageContextMenu\": {\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n all.push({\r\n type: ApplicationCommandType.Message,\r\n name: current.name,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n name_localizations: localeData.allNameLocales,\r\n description_localizations: localeData.descriptionLocales,\r\n });\r\n break;\r\n }\r\n case \"UserContextMenu\": {\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n all.push({\r\n type: ApplicationCommandType.User,\r\n name: current.name,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n name_localizations: localeData.allNameLocales,\r\n description_localizations: localeData.descriptionLocales\r\n });\r\n break;\r\n }\r\n }\r\n\r\n return all;\r\n }, []);\r\n \r\n switch (publishType) {\r\n case \"Global\": {\r\n await rest.put(Routes.applicationGuildCommands(me.id, guildId), { body });\r\n break;\r\n }\r\n case \"Guild\": {\r\n await rest.put(Routes.applicationCommands(me.id), { body });\r\n break;\r\n }\r\n }\r\n \r\n}\r\n\r\nexport function localeifyOptions(options: any[], localeData: any): any[] {\r\n return options.map(i => {\r\n let optionData = localeData[i.name];\r\n return optionData ? Object.assign(i, {\r\n name_localizations: optionData.nameLocales,\r\n description_localizations: optionData.descriptionLocales,\r\n choices: i.choices ? i.choices.map((j) => {\r\n let choiceLocale = optionData.choiceLocales[j.name];\r\n return choiceLocale ? Object.assign(j, {\r\n name_localizations: choiceLocale\r\n }) : j;\r\n }) : undefined\r\n }) : i;\r\n })\r\n}\r\n\r\nexport function formatLocale(locale: DBIInteractionLocale): any {\r\n let allNameLocales = {};\r\n let descriptionLocales = {};\r\n let optionsLocales = {};\r\n\r\n function nameLocales(index) {\r\n return Object.fromEntries(Object.entries(allNameLocales).map(i => [i[0], (i[1] as string).split(\" \").at(index)]));\r\n }\r\n\r\n if (!locale?.data) return {\r\n nameLocales,\r\n allNameLocales,\r\n descriptionLocales,\r\n optionsLocales\r\n };\r\n\r\n Object.entries(locale.data).forEach(([shortLocale, localeData]) => {\r\n let longAliases = ORIGINAL_LOCALES.filter(i => i.split(\"-\").at(0) == shortLocale);\r\n longAliases.forEach((longLocale) => {\r\n allNameLocales[longLocale] = localeData.name;\r\n descriptionLocales[longLocale] = localeData.description;\r\n Object.entries(localeData.options || []).forEach(([optionName, optionData]) => {\r\n if (!optionsLocales[optionName]) optionsLocales[optionName] = {};\r\n let optionLocale = optionsLocales[optionName];\r\n if (!optionLocale.nameLocales) optionLocale.nameLocales = {};\r\n if (!optionLocale.descriptionLocales) optionLocale.descriptionLocales = {};\r\n if (!optionLocale.choiceLocales) optionLocale.choiceLocales = {};\r\n\r\n Object.entries(optionData.choices).forEach(([choiceOriginalName, choiceName]) => {\r\n if (!optionLocale.choiceLocales) optionLocale.choiceLocales = {};\r\n if (!optionLocale.choiceLocales[choiceOriginalName]) optionLocale.choiceLocales[choiceOriginalName] = {};\r\n let choiceLocale = optionLocale.choiceLocales[choiceOriginalName];\r\n \r\n choiceLocale[longLocale] = choiceName;\r\n });\r\n\r\n optionLocale.nameLocales[longLocale] = optionData.name;\r\n optionLocale.descriptionLocales[longLocale] = optionData.description;\r\n })\r\n });\r\n });\r\n \r\n return {\r\n nameLocales,\r\n allNameLocales,\r\n descriptionLocales,\r\n optionsLocales\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"publishInteractions.js","sourceRoot":"","sources":["../../src/methods/publishInteractions.ts"],"names":[],"mappings":"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","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBIChatInput } from \"../types/ChatInput/ChatInput\";\r\nimport { REST } from \"@discordjs/rest\";\r\nimport { Routes, RESTGetAPIUserResult, RESTPutAPIApplicationCommandsJSONBody, ApplicationCommandType, ApplicationCommandOptionType } from \"discord-api-types/v9\";\r\nimport { reducePermissions } from \"../utils/permissions\";\r\nimport snakecaseKeys from \"snakecase-keys\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIInteractionLocale } from \"../types/InteractionLocale\";\r\n\r\nconst PUBLISHABLE_TYPES = [\"ChatInput\", \"UserContextMenu\", \"MessageContextMenu\"];\r\nconst ORIGINAL_LOCALES = [\"da\", \"de\", \"en-GB\", \"en-US\", \"es-ES\", \"fr\", \"hr\", \"it\", \"lt\", \"hu\", \"nl\", \"no\", \"pl\", \"pt-BR\", \"ro\", \"fi\", \"sv-SE\", \"vi\", \"tr\", \"cs\", \"el\", \"bg\", \"ru\", \"uk\", \"hi\", \"th\", \"zh-CN\", \"ja\", \"zh-TW\", \"ko\"];\r\n\r\nexport async function publishInteractions(\r\n clientToken: string,\r\n interactions: Discord.Collection<string, DBIChatInput>,\r\n interactionsLocales: Discord.Collection<string, DBIInteractionLocale>,\r\n publishType: \"Guild\" | \"Global\",\r\n guildId?: string\r\n) {\r\n interactions = interactions.filter(i => PUBLISHABLE_TYPES.includes(i.type));\r\n\r\n const rest = new REST({ version: \"9\" });\r\n rest.setToken(clientToken);\r\n\r\n const me: RESTGetAPIUserResult = await rest.get(Routes.user()) as any;\r\n interactions = interactions.sort((a, b) => b.name.split(\" \").length - a.name.split(\" \").length);\r\n\r\n let body: RESTPutAPIApplicationCommandsJSONBody =\r\n interactions.reduce((all, current) => {\r\n switch (current.type) {\r\n case \"ChatInput\": {\r\n let nameSplitted = current.name.split(\" \");\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n switch (nameSplitted.length) {\r\n case 1: {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n description: current.description,\r\n name: nameSplitted[0],\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(0),\r\n description_localizations: localeData.descriptionLocales,\r\n });\r\n break;\r\n }\r\n case 2: {\r\n let baseItem = all.find(i => i.name == current.name.split(\" \")[0] && i.type == ApplicationCommandType.ChatInput);\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n let option = {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[1],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(1),\r\n description_localizations: localeData.descriptionLocales,\r\n };\r\n if (!baseItem) {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n name: nameSplitted[0],\r\n name_localizations: localeData.nameLocales(0),\r\n description: \"...\",\r\n options: [\r\n option\r\n ]\r\n });\r\n } else {\r\n baseItem.options.push(option);\r\n }\r\n break;\r\n }\r\n case 3: {\r\n let level1Item = all.find(i => i.name == current.name.split(\" \")[0] && i.type == ApplicationCommandType.ChatInput);\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n if (!level1Item) {\r\n all.push({\r\n type: ApplicationCommandType.ChatInput,\r\n name: nameSplitted[0],\r\n name_localizations: localeData.nameLocales(0),\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.SubcommandGroup,\r\n name: nameSplitted[1],\r\n name_localizations: localeData.nameLocales(1),\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(2),\r\n description_localizations: localeData.descriptionLocales,\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n } else {\r\n let level2Item = level1Item.options.find(i => i.name == current.name.split(\" \")[1]);\r\n if (!level2Item) {\r\n level1Item.options.push({\r\n type: ApplicationCommandOptionType.SubcommandGroup,\r\n name: nameSplitted[1],\r\n name_localizations: localeData.nameLocales(1),\r\n description: \"...\",\r\n options: [\r\n {\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(2),\r\n description_localizations: localeData.descriptionLocales\r\n }\r\n ]\r\n })\r\n } else {\r\n level2Item.options.push({\r\n type: ApplicationCommandOptionType.Subcommand,\r\n name: nameSplitted[2],\r\n description: current.description,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n options: localeifyOptions(current.options || [], localeData.optionsLocales),\r\n name_localizations: localeData.nameLocales(2),\r\n description_localizations: localeData.descriptionLocales,\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n case \"MessageContextMenu\": {\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n all.push({\r\n type: ApplicationCommandType.Message,\r\n name: current.name,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n name_localizations: localeData.allNameLocales,\r\n description_localizations: localeData.descriptionLocales,\r\n });\r\n break;\r\n }\r\n case \"UserContextMenu\": {\r\n let localeData = formatLocale(interactionsLocales.get(current.name) ?? {} as any);\r\n all.push({\r\n type: ApplicationCommandType.User,\r\n name: current.name,\r\n default_member_permissions: reducePermissions(current.defaultMemberPermissions).toString(),\r\n dm_permission: current.directMessages,\r\n name_localizations: localeData.allNameLocales,\r\n description_localizations: localeData.descriptionLocales\r\n });\r\n break;\r\n }\r\n }\r\n\r\n return all;\r\n }, []);\r\n \r\n switch (publishType) {\r\n case \"Guild\": {\r\n await rest.put(Routes.applicationGuildCommands(me.id, guildId), { body });\r\n break;\r\n }\r\n case \"Global\": {\r\n await rest.put(Routes.applicationCommands(me.id), { body });\r\n break;\r\n }\r\n }\r\n \r\n}\r\n\r\nexport function localeifyOptions(options: any[], localeData: any): any[] {\r\n return options.map(i => {\r\n let optionData = localeData[i.name];\r\n return optionData ? Object.assign(i, {\r\n name_localizations: optionData.nameLocales,\r\n description_localizations: optionData.descriptionLocales,\r\n choices: i.choices ? i.choices.map((j) => {\r\n let choiceLocale = optionData.choiceLocales[j.name];\r\n return choiceLocale ? Object.assign(j, {\r\n name_localizations: choiceLocale\r\n }) : j;\r\n }) : undefined\r\n }) : i;\r\n })\r\n}\r\n\r\nexport function formatLocale(locale: DBIInteractionLocale): any {\r\n let allNameLocales = {};\r\n let descriptionLocales = {};\r\n let optionsLocales = {};\r\n\r\n function nameLocales(index) {\r\n return Object.fromEntries(Object.entries(allNameLocales).map(i => [i[0], (i[1] as string).split(\" \").at(index)]));\r\n }\r\n\r\n if (!locale?.data) return {\r\n nameLocales,\r\n allNameLocales,\r\n descriptionLocales,\r\n optionsLocales\r\n };\r\n\r\n Object.entries(locale.data).forEach(([shortLocale, localeData]) => {\r\n let longAliases = ORIGINAL_LOCALES.filter(i => i.split(\"-\").at(0) == shortLocale);\r\n longAliases.forEach((longLocale) => {\r\n allNameLocales[longLocale] = localeData.name;\r\n descriptionLocales[longLocale] = localeData.description;\r\n Object.entries(localeData.options || []).forEach(([optionName, optionData]) => {\r\n if (!optionsLocales[optionName]) optionsLocales[optionName] = {};\r\n let optionLocale = optionsLocales[optionName];\r\n if (!optionLocale.nameLocales) optionLocale.nameLocales = {};\r\n if (!optionLocale.descriptionLocales) optionLocale.descriptionLocales = {};\r\n if (!optionLocale.choiceLocales) optionLocale.choiceLocales = {};\r\n\r\n Object.entries(optionData.choices).forEach(([choiceOriginalName, choiceName]) => {\r\n if (!optionLocale.choiceLocales) optionLocale.choiceLocales = {};\r\n if (!optionLocale.choiceLocales[choiceOriginalName]) optionLocale.choiceLocales[choiceOriginalName] = {};\r\n let choiceLocale = optionLocale.choiceLocales[choiceOriginalName];\r\n \r\n choiceLocale[longLocale] = choiceName;\r\n });\r\n\r\n optionLocale.nameLocales[longLocale] = optionData.name;\r\n optionLocale.descriptionLocales[longLocale] = optionData.description;\r\n })\r\n });\r\n });\r\n \r\n return {\r\n nameLocales,\r\n allNameLocales,\r\n descriptionLocales,\r\n optionsLocales\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":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B,mCAAmC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC,uCAAuC,CAAA;KAAE,CAAC;IAC/F,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,0BAA0B,CAAA;KAAE,CAAC;IAC/D,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAA;KAAE,CAAC;IACnF,iBAAiB,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;IACrE,aAAa,EAAE;QACb,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC;QACnE,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC;KACpE,CAAC;IACF,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,WAAW,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAA;KAAE,CAAC;IAC3C,WAAW,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAA;KAAE,CAAC;IAC3C,WAAW,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAA;KAAE,CAAC;IAC5E,KAAK,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IACxB,WAAW,EAAE;QAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;KAAE,CAAC;IACvC,cAAc,EAAE;QAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAA;KAAE,CAAC;IAC1C,WAAW,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAA;KAAE,CAAC;IACtC,WAAW,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAA;KAAE,CAAC;IACtC,gBAAgB,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAA;KAAE,CAAC;IAC3C,uBAAuB,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAA;KAAE,CAAC;IAClD,cAAc,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAA;KAAE,CAAC;IAChD,oBAAoB,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAA;KAAE,CAAC;IACnF,iBAAiB,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAA;KAAE,CAAC;IAChF,iBAAiB,EAAE;QACjB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QACrB,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;KACnE,CAAC;IACF,iBAAiB,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAA;KAAE,CAAC;IACnH,WAAW,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAA;KAAE,CAAC;IAClE,YAAY,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAA;KAAE,CAAC;IACzC,YAAY,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAA;KAAE,CAAC;IACzC,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC;IAC5C,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAA;KAAE,CAAC;IACrE,wBAAwB,EAAE;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;QAClD,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;KACpF,CAAC;IACF,0BAA0B,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAA;KAAE,CAAC;IACnG,iBAAiB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAA;KAAE,CAAC;IACpJ,kBAAkB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAA;KAAE,CAAC;IACrI,qBAAqB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAA;KAAE,CAAC;IACxI,aAAa,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAA;KAAE,CAAC;IAC9H,cAAc,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAA;KAAE,CAAC;IACxF,KAAK,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACxC,WAAW,EAAE,EAAE,CAAC;IAChB,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAA;KAAE,CAAC;IACnC,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAA;KAAE,CAAC;IACnC,UAAU,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAA;KAAE,CAAC;IAC7D,YAAY,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1E,YAAY,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAA;KAAE,CAAC;IACnD,cAAc,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAA;KAAE,CAAC;IACnH,kBAAkB,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAA;KAAE,CAAC;IACzF,mBAAmB,EAAE;QACnB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1E,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC1G,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC;KAClC,CAAC;IACF,YAAY,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAA;KAAE,CAAC;IAC3F,WAAW,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAA;KAAE,CAAC;IACxC,UAAU,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAA;KAAE,CAAC;IACnF,gBAAgB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAA;KAAE,CAAC;IACjF,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAA;KAAE,CAAC;IAC7F,iBAAiB,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAA;KAAE,CAAC;IACxD,eAAe,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,UAAU,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;IACvF,iBAAiB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,mBAAmB,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC,aAAa,CAAA;KAAE,CAAC;IAC9D,mBAAmB,EAAE;QAAE,gBAAgB,EAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;QAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAA;KAAE,CAAC;IACjH,mBAAmB,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC,aAAa,CAAA;KAAE,CAAC;IAC9D,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC;IAC5C,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC;IAC5C,aAAa,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAA;KAAE,CAAC;IAC5E,yBAAyB,EAAE;QAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,CAAA;KAAE,CAAC;IAChF,yBAAyB,EAAE;QACzB,sBAAsB,EAAE,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAC3D,sBAAsB,EAAE,OAAO,CAAC,mBAAmB,CAAC;KACrD,CAAC;IACF,yBAAyB,EAAE;QAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,CAAA;KAAE,CAAC;IAChF,0BAA0B,EAAE;QAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAA;KAAE,CAAC;IACrG,6BAA6B,EAAE;QAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAA;KAAE,CAAC;CACzG;AAED,oBAAY,oBAAoB,GAAG;KAChC,CAAC,IAAI,MAAM,YAAY,GAAG;QACzB,IAAI,EAAE,CAAC,CAAC;QACR,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAAC,MAAM,CAAC,EAAE;gBAAE,KAAK,EAAE,SAAS,CAAA;aAAE,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;KAC3I;CACF,CAAC,MAAM,YAAY,CAAC,CAAC;AAEtB,oBAAY,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,oBAAoB,CAAC;AAEvH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,GAAG,CAAC;gBACG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB;CAS5C"}
|
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;
|
|
@@ -172,11 +172,11 @@ export async function publishInteractions(
|
|
|
172
172
|
}, []);
|
|
173
173
|
|
|
174
174
|
switch (publishType) {
|
|
175
|
-
case "
|
|
175
|
+
case "Guild": {
|
|
176
176
|
await rest.put(Routes.applicationGuildCommands(me.id, guildId), { body });
|
|
177
177
|
break;
|
|
178
178
|
}
|
|
179
|
-
case "
|
|
179
|
+
case "Global": {
|
|
180
180
|
await rest.put(Routes.applicationCommands(me.id), { body });
|
|
181
181
|
break;
|
|
182
182
|
}
|
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
|
}
|