@mostfeatured/dbi 0.0.91 → 0.0.93

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  import { NamespaceEnums, NamespaceData } from "../generated/namespaceData";
2
2
  import { DBI } from "./DBI";
3
3
  import { TDBIMessageCommandArgumentErrorTypes } from "./methods/handleMessageCommands";
4
- import { ClientEvents } from "./types/Event";
4
+ import { ClientEvents, DBIEvent } from "./types/Event";
5
5
  import { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from "./types/Interaction";
6
6
  import { FakeMessageInteraction } from "./types/other/FakeMessageInteraction";
7
7
  import { DBILocale } from "./types/other/Locale";
@@ -14,6 +14,7 @@ export type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {
14
14
  guild: DBILocale<TNamespace>;
15
15
  };
16
16
  eventName: K;
17
+ dbiEvent: DBIEvent<TNamespace>;
17
18
  } & (ClientEvents & NamespaceData[TNamespace]["customEvents"])[K];
18
19
  }[keyof (ClientEvents & NamespaceData[TNamespace]["customEvents"])];
19
20
  export declare class Events<TNamespace extends NamespaceEnums> {
@@ -34,6 +35,7 @@ export declare class Events<TNamespace extends NamespaceEnums> {
34
35
  }): (() => any);
35
36
  on(eventName: "eventError", handler: (data: TDBIEventHandlerCtx<TNamespace> & {
36
37
  error: any;
38
+ dbiEvent: DBIEvent<TNamespace>;
37
39
  }) => Promise<boolean> | boolean, options?: {
38
40
  once: boolean;
39
41
  }): (() => any);
@@ -1 +1 @@
1
- {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,YAAY,GAAG,6BAA6B,CAAC;AAElM,MAAM,MAAM,mBAAmB,CAAC,UAAU,SAAS,cAAc,IAAI;KAClE,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;SAAE,CAAC;QAAC,SAAS,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;KAAE,GAAG,CAAC,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACjQ,CAAC,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEpE,qBAAa,MAAM,CAAC,UAAU,SAAS,cAAc;IACnD,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,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,CAAC,UAAU,CAAC;IAc1B,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,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EAC7E,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAC1B,CAAC,MAAM,GAAG,CAAC;IAEd,EAAE,CACA,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EAC9F,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,mBAAmB,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EAC9E,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAC1B,CAAC,MAAM,GAAG,CAAC;IAEd,EAAE,CACA,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EAC/H,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,CAAC,UAAU,CAAC,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,EACzL,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAC1B,CAAC,MAAM,GAAG,CAAC;IAEd,EAAE,CACA,SAAS,EAAE,6BAA6B,EACxC,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QAAC,WAAW,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE;YAAE,IAAI,EAAE,oCAAoC,CAAC;YAAC,MAAM,EAAE,GAAG,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,GAAG,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE;YAAE,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,EACpS,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAC1B,CAAC,MAAM,GAAG,CAAC;IAqBd,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;CAKlF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAeA,MAAa,MAAM;IACjB,GAAG,CAAkB;IACrB,QAAQ,CAAmE;IAC3E,YAAY,GAAoB;QAC9B,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;YACd,gBAAgB,EAAE,EAAE;YACpB,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,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,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;IAuCD,EAAE,CAAC,SAAyB,EAAE,OAAkD,EAAE,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAC5H,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5E,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,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AAzFD,wBAyFC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\r\nimport { DBI } from \"./DBI\";\r\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\r\nimport { ClientEvents } from \"./types/Event\";\r\nimport { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from \"./types/Interaction\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\nimport { DBILocale } from \"./types/other/Locale\";\r\nimport Discord from \"discord.js\";\r\n\r\nexport type TDBIEventNames = \"beforeInteraction\" | \"afterInteraction\" | \"interactionRateLimit\" | \"beforeEvent\" | \"afterEvent\" | \"interactionError\" | \"eventError\" | \"messageCommandArgumentError\";\r\n\r\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\r\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: K } & (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])[K]\r\n}[keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])];\r\n\r\nexport class Events<TNamespace extends NamespaceEnums> {\r\n DBI: DBI<TNamespace>;\r\n handlers: Record<string, Array<(data: any) => boolean | Promise<boolean>>>;\r\n constructor(DBI: DBI<TNamespace>) {\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 interactionError: [],\r\n eventError: []\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 if (!handlers) return true;\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<TNamespace>) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"interactionError\",\r\n handler: (data: IDBIBaseExecuteCtx<TNamespace> & { error: any }) => 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: TDBIEventHandlerCtx<TNamespace>) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"eventError\",\r\n handler: (data: TDBIEventHandlerCtx<TNamespace> & { error: any }) => 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<TNamespace>, \"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(\r\n eventName: \"messageCommandArgumentError\",\r\n handler: (data: { message: Discord.Message, interaction: FakeMessageInteraction, error: { type: TDBIMessageCommandArgumentErrorTypes, option: any, index: number, extra?: any }, value: any, locale: { guild?: DBILocale<TNamespace>, user: DBILocale<TNamespace> } }) => 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 (!this.handlers.hasOwnProperty(eventName)) this.handlers[eventName] = [];\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 if (!l) return [];\r\n return l.splice(l.indexOf(handler), 1);\r\n }\r\n}"]}
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAeA,MAAa,MAAM;IACjB,GAAG,CAAkB;IACrB,QAAQ,CAAmE;IAC3E,YAAY,GAAoB;QAC9B,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;YACd,gBAAgB,EAAE,EAAE;YACpB,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,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,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;IAsCD,EAAE,CAAC,SAAyB,EAAE,OAAkD,EAAE,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAC5H,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5E,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,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AAxFD,wBAwFC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\r\nimport { DBI } from \"./DBI\";\r\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\r\nimport { ClientEvents, DBIEvent } from \"./types/Event\";\r\nimport { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from \"./types/Interaction\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\nimport { DBILocale } from \"./types/other/Locale\";\r\nimport Discord from \"discord.js\";\r\n\r\nexport type TDBIEventNames = \"beforeInteraction\" | \"afterInteraction\" | \"interactionRateLimit\" | \"beforeEvent\" | \"afterEvent\" | \"interactionError\" | \"eventError\" | \"messageCommandArgumentError\";\r\n\r\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\r\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: K, dbiEvent: DBIEvent<TNamespace> } & (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])[K]\r\n}[keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])];\r\n\r\nexport class Events<TNamespace extends NamespaceEnums> {\r\n DBI: DBI<TNamespace>;\r\n handlers: Record<string, Array<(data: any) => boolean | Promise<boolean>>>;\r\n constructor(DBI: DBI<TNamespace>) {\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 interactionError: [],\r\n eventError: []\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 if (!handlers) return true;\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 on(\r\n eventName: \"beforeInteraction\" | \"afterInteraction\",\r\n handler: (data: IDBIBaseExecuteCtx<TNamespace>) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"interactionError\",\r\n handler: (data: IDBIBaseExecuteCtx<TNamespace> & { error: any }) => 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: TDBIEventHandlerCtx<TNamespace>) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"eventError\",\r\n handler: (data: TDBIEventHandlerCtx<TNamespace> & { error: any, dbiEvent: DBIEvent<TNamespace> }) => 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<TNamespace>, \"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(\r\n eventName: \"messageCommandArgumentError\",\r\n handler: (data: { message: Discord.Message, interaction: FakeMessageInteraction, error: { type: TDBIMessageCommandArgumentErrorTypes, option: any, index: number, extra?: any }, value: any, locale: { guild?: DBILocale<TNamespace>, user: DBILocale<TNamespace> } }) => 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 (!this.handlers.hasOwnProperty(eventName)) this.handlers[eventName] = [];\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 if (!l) return [];\r\n return 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":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,GAAG,CAwGtE"}
1
+ {"version":3,"file":"hookEventListeners.d.ts","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,GAAG,CA2GtE"}
@@ -34,8 +34,6 @@ function hookEventListeners(dbi) {
34
34
  }, null);
35
35
  let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;
36
36
  let locale = guildLocale ? { guild: guildLocale } : null;
37
- if (!await dbi.events.trigger("beforeEvent", { eventName, ...ctxArgs, other, locale }))
38
- return;
39
37
  let ordered = [];
40
38
  let unOrdered = [];
41
39
  for (let i = 0; i < dbi.data.events.size; i++) {
@@ -54,17 +52,19 @@ function hookEventListeners(dbi) {
54
52
  const value = unOrdered[i];
55
53
  if (value?.disabled)
56
54
  continue;
55
+ if (!(await dbi.events.trigger("beforeEvent", { ...arg, dbiEvent: value })))
56
+ continue;
57
57
  if (dbi.config.strict) {
58
58
  value.onExecute({ ...arg, nextClient: getClientByEvent(value) });
59
59
  }
60
60
  else {
61
61
  try {
62
62
  value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {
63
- dbi.events.trigger("eventError", Object.assign(arg, { error }));
63
+ dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
64
64
  });
65
65
  }
66
66
  catch (error) {
67
- dbi.events.trigger("eventError", Object.assign(arg, { error }));
67
+ dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
68
68
  }
69
69
  }
70
70
  }
@@ -72,17 +72,19 @@ function hookEventListeners(dbi) {
72
72
  const value = ordered[i];
73
73
  if (value?.disabled)
74
74
  continue;
75
+ if (!(await dbi.events.trigger("beforeEvent", { ...arg, dbiEvent: value })))
76
+ continue;
75
77
  if (dbi.config.strict) {
76
78
  await value.onExecute({ ...arg, nextClient: getClientByEvent(value) });
77
79
  }
78
80
  else {
79
81
  try {
80
82
  await value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {
81
- dbi.events.trigger("eventError", Object.assign(arg, { error }));
83
+ dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
82
84
  });
83
85
  }
84
86
  catch (error) {
85
- await dbi.events.trigger("eventError", Object.assign(arg, { error }));
87
+ await dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
86
88
  }
87
89
  }
88
90
  }
@@ -1 +1 @@
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 { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\n\r\nexport function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {\r\n\r\n function getClientByEvent(value) {\r\n return value.triggerType == \"OneByOne\"\r\n ? dbi.data.clients.next(`Event:${value.id}`)\r\n : value.triggerType == \"OneByOneGlobal\"\r\n ? dbi.data.clients.next(\"Event\")\r\n : value.triggerType == \"Random\"\r\n ? dbi.data.clients.random()\r\n : dbi.data.clients.first();\r\n }\r\n\r\n async function handle(eventName: string, ...args: any[]) {\r\n if (!dbi.data.eventMap[eventName]) return;\r\n\r\n let isDirect = args?.[0]?._DIRECT_ ?? false;\r\n if (isDirect) delete args[0]._DIRECT_;\r\n \r\n let ctxArgs =\r\n isDirect\r\n ? args[0]\r\n : (dbi.data.eventMap[eventName] as any).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 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 let arg = { eventName, ...ctxArgs, other, locale };\r\n\r\n for (let i = 0; i < unOrdered.length; i++) {\r\n const value = unOrdered[i];\r\n \r\n if (value?.disabled) continue;\r\n\r\n if (dbi.config.strict) {\r\n value.onExecute({ ...arg, nextClient: getClientByEvent(value) });\r\n } else {\r\n try {\r\n value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {\r\n dbi.events.trigger(\"eventError\", Object.assign(arg, { error }));\r\n });\r\n } catch (error) {\r\n dbi.events.trigger(\"eventError\", Object.assign(arg, { error }));\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < ordered.length; i++) {\r\n const value = ordered[i];\r\n\r\n if (value?.disabled) continue;\r\n\r\n if (dbi.config.strict) {\r\n await value.onExecute({ ...arg, nextClient: getClientByEvent(value) });\r\n } else {\r\n try {\r\n await value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {\r\n dbi.events.trigger(\"eventError\", Object.assign(arg, { error }));\r\n });\r\n } catch (error) {\r\n await dbi.events.trigger(\"eventError\", Object.assign(arg, { error }));\r\n }\r\n }\r\n }\r\n\r\n dbi.events.trigger(\"afterEvent\", arg)\r\n }\r\n\r\n let firstClient = dbi.data.clients.first().client;\r\n let originalEmit = firstClient.emit;\r\n\r\n firstClient.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 firstClient.emit = originalEmit;\r\n }\r\n}"]}
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 { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\n\r\nexport function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {\r\n\r\n function getClientByEvent(value) {\r\n return value.triggerType == \"OneByOne\"\r\n ? dbi.data.clients.next(`Event:${value.id}`)\r\n : value.triggerType == \"OneByOneGlobal\"\r\n ? dbi.data.clients.next(\"Event\")\r\n : value.triggerType == \"Random\"\r\n ? dbi.data.clients.random()\r\n : dbi.data.clients.first();\r\n }\r\n\r\n async function handle(eventName: string, ...args: any[]) {\r\n if (!dbi.data.eventMap[eventName]) return;\r\n\r\n let isDirect = args?.[0]?._DIRECT_ ?? false;\r\n if (isDirect) delete args[0]._DIRECT_;\r\n\r\n let ctxArgs =\r\n isDirect\r\n ? args[0]\r\n : (dbi.data.eventMap[eventName] as any).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 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\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 let arg = { eventName, ...ctxArgs, other, locale };\r\n\r\n for (let i = 0; i < unOrdered.length; i++) {\r\n const value = unOrdered[i];\r\n\r\n if (value?.disabled) continue;\r\n\r\n if (!(await dbi.events.trigger(\"beforeEvent\", { ...arg, dbiEvent: value }))) continue;\r\n\r\n if (dbi.config.strict) {\r\n value.onExecute({ ...arg, nextClient: getClientByEvent(value) });\r\n } else {\r\n try {\r\n value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {\r\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\r\n });\r\n } catch (error) {\r\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < ordered.length; i++) {\r\n const value = ordered[i];\r\n\r\n if (value?.disabled) continue;\r\n\r\n if (!(await dbi.events.trigger(\"beforeEvent\", { ...arg, dbiEvent: value }))) continue;\r\n\r\n if (dbi.config.strict) {\r\n await value.onExecute({ ...arg, nextClient: getClientByEvent(value) });\r\n } else {\r\n try {\r\n await value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {\r\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\r\n });\r\n } catch (error) {\r\n await dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\r\n }\r\n }\r\n }\r\n\r\n dbi.events.trigger(\"afterEvent\", arg)\r\n }\r\n\r\n let firstClient = dbi.data.clients.first().client;\r\n let originalEmit = firstClient.emit;\r\n\r\n firstClient.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 firstClient.emit = originalEmit;\r\n }\r\n}"]}
@@ -44,8 +44,8 @@ export declare class DBIBaseInteraction<TNamespace extends NamespaceEnums> {
44
44
  readonly type: TDBIInteractionTypes;
45
45
  options?: any | any[];
46
46
  other?: Record<string, any> & {
47
- messageCommand: {
48
- aliases: string[];
47
+ messageCommand?: {
48
+ aliases?: string[];
49
49
  };
50
50
  };
51
51
  rateLimits?: DBIRateLimit[];
@@ -1 +1 @@
1
- {"version":3,"file":"Interaction.d.ts","sourceRoot":"","sources":["../../src/types/Interaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Interaction.d.ts","sourceRoot":"","sources":["../../src/types/Interaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Interaction.js","sourceRoot":"","sources":["../../src/types/Interaction.ts"],"names":[],"mappings":";;;AAgEA,MAAa,kBAAkB;IAC7B,YAAY,GAAoB,EAAE,GAAgD;QAChF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,CAAiD;IACxD,GAAG,CAAkB;IACrB,IAAI,CAAS;IACb,WAAW,CAAS;IACX,IAAI,CAAuB;IACpC,OAAO,CAAe;IACtB,KAAK,CAAmE;IACxE,UAAU,CAAkB;IAC5B,MAAM,CAAC,SAAc,IAAS,CAAC;IAE/B,SAAS,CAAC,GAAmC;IAE7C,CAAC;CACF;AA1BD,gDA0BC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { NamespaceEnums, NamespaceData } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIButton } from \"./Components/Button\";\r\nimport { DBIChatInput } from \"./ChatInput/ChatInput\";\r\nimport { DBILocale } from \"./other/Locale\";\r\nimport { DBIMessageContextMenu } from \"./other/MessageContextMenu\";\r\nimport { DBIModal } from \"./Components/Modal\";\r\nimport { DBIStringSelectMenu } from \"./Components/StringSelectMenu\";\r\nimport { DBIUserContextMenu } from \"./other/UserContextMenu\";\r\n\r\nexport type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<TNamespace> | DBIButton<TNamespace> | DBIStringSelectMenu<TNamespace> | DBIMessageContextMenu<TNamespace> | DBIUserContextMenu<TNamespace> | DBIModal<TNamespace>;\r\n\r\nexport interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {\r\n interaction:\r\n | Discord.ChatInputCommandInteraction\r\n | Discord.UserContextMenuCommandInteraction\r\n | Discord.MessageContextMenuCommandInteraction\r\n | Discord.ModalSubmitInteraction\r\n | Discord.AutocompleteInteraction\r\n | Discord.AnySelectMenuInteraction\r\n | Discord.ButtonInteraction;\r\n locale: {\r\n user: DBILocale<TNamespace>,\r\n guild?: DBILocale<TNamespace>\r\n }\r\n dbi: DBI<TNamespace>;\r\n dbiInteraction: TDBIInteractions<TNamespace>;\r\n setRateLimit(type: TDBIRateLimitTypes, duration: number): Promise<any>;\r\n other: Record<string, any>;\r\n clientNamespace: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n}\r\n\r\nexport type TDBIReferencedData = ({ [key: string]: any, $ref: string, $unRef(): boolean } | string | number);\r\n\r\nexport type TDBIInteractionTypes =\r\n | \"ChatInput\"\r\n | \"UserContextMenu\"\r\n | \"MessageContextMenu\"\r\n | \"Modal\"\r\n | \"Autocomplete\"\r\n | \"StringSelectMenu\"\r\n | \"UserSelectMenu\"\r\n | \"ChannelSelectMenu\"\r\n | \"MentionableSelectMenu\"\r\n | \"RoleSelectMenu\"\r\n | \"Button\";\r\n\r\nexport type TDBIRateLimitTypes =\r\n | \"User\"\r\n | \"Channel\"\r\n | \"Guild\"\r\n | \"Member\"\r\n | \"Message\";\r\n\r\n\r\nexport type DBIRateLimit = {\r\n type: TDBIRateLimitTypes;\r\n /**\r\n * Duration in milliseconds.\r\n */\r\n duration: number;\r\n}\r\n\r\nexport class DBIBaseInteraction<TNamespace extends NamespaceEnums> {\r\n constructor(dbi: DBI<TNamespace>, cfg: Omit<DBIBaseInteraction<TNamespace>, \"dbi\">) {\r\n this.dbi = dbi;\r\n this.name = cfg.name;\r\n this.description = cfg.description;\r\n this.onExecute = cfg.onExecute;\r\n this.type = cfg.type;\r\n this.options = cfg.options;\r\n this.other = cfg.other;\r\n this.publish = cfg.publish ?? dbi.data.clients.first()?.namespace;\r\n this.rateLimits = cfg.rateLimits ?? [];\r\n }\r\n \r\n publish?: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n dbi: DBI<TNamespace>;\r\n name: string;\r\n description: string;\r\n readonly type: TDBIInteractionTypes;\r\n options?: any | any[];\r\n other?: Record<string, any> & { messageCommand: { aliases: string[] } };\r\n rateLimits?: DBIRateLimit[];\r\n toJSON(overrides: any): any { }\r\n\r\n onExecute(ctx: IDBIBaseExecuteCtx<TNamespace>): Promise<void> | void {\r\n\r\n }\r\n}"]}
1
+ {"version":3,"file":"Interaction.js","sourceRoot":"","sources":["../../src/types/Interaction.ts"],"names":[],"mappings":";;;AAgEA,MAAa,kBAAkB;IAC7B,YAAY,GAAoB,EAAE,GAAgD;QAChF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,CAAiD;IACxD,GAAG,CAAkB;IACrB,IAAI,CAAS;IACb,WAAW,CAAS;IACX,IAAI,CAAuB;IACpC,OAAO,CAAe;IACtB,KAAK,CAAqE;IAC1E,UAAU,CAAkB;IAC5B,MAAM,CAAC,SAAc,IAAS,CAAC;IAE/B,SAAS,CAAC,GAAmC;IAE7C,CAAC;CACF;AA1BD,gDA0BC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { NamespaceEnums, NamespaceData } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIButton } from \"./Components/Button\";\r\nimport { DBIChatInput } from \"./ChatInput/ChatInput\";\r\nimport { DBILocale } from \"./other/Locale\";\r\nimport { DBIMessageContextMenu } from \"./other/MessageContextMenu\";\r\nimport { DBIModal } from \"./Components/Modal\";\r\nimport { DBIStringSelectMenu } from \"./Components/StringSelectMenu\";\r\nimport { DBIUserContextMenu } from \"./other/UserContextMenu\";\r\n\r\nexport type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<TNamespace> | DBIButton<TNamespace> | DBIStringSelectMenu<TNamespace> | DBIMessageContextMenu<TNamespace> | DBIUserContextMenu<TNamespace> | DBIModal<TNamespace>;\r\n\r\nexport interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {\r\n interaction:\r\n | Discord.ChatInputCommandInteraction\r\n | Discord.UserContextMenuCommandInteraction\r\n | Discord.MessageContextMenuCommandInteraction\r\n | Discord.ModalSubmitInteraction\r\n | Discord.AutocompleteInteraction\r\n | Discord.AnySelectMenuInteraction\r\n | Discord.ButtonInteraction;\r\n locale: {\r\n user: DBILocale<TNamespace>,\r\n guild?: DBILocale<TNamespace>\r\n }\r\n dbi: DBI<TNamespace>;\r\n dbiInteraction: TDBIInteractions<TNamespace>;\r\n setRateLimit(type: TDBIRateLimitTypes, duration: number): Promise<any>;\r\n other: Record<string, any>;\r\n clientNamespace: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n}\r\n\r\nexport type TDBIReferencedData = ({ [key: string]: any, $ref: string, $unRef(): boolean } | string | number);\r\n\r\nexport type TDBIInteractionTypes =\r\n | \"ChatInput\"\r\n | \"UserContextMenu\"\r\n | \"MessageContextMenu\"\r\n | \"Modal\"\r\n | \"Autocomplete\"\r\n | \"StringSelectMenu\"\r\n | \"UserSelectMenu\"\r\n | \"ChannelSelectMenu\"\r\n | \"MentionableSelectMenu\"\r\n | \"RoleSelectMenu\"\r\n | \"Button\";\r\n\r\nexport type TDBIRateLimitTypes =\r\n | \"User\"\r\n | \"Channel\"\r\n | \"Guild\"\r\n | \"Member\"\r\n | \"Message\";\r\n\r\n\r\nexport type DBIRateLimit = {\r\n type: TDBIRateLimitTypes;\r\n /**\r\n * Duration in milliseconds.\r\n */\r\n duration: number;\r\n}\r\n\r\nexport class DBIBaseInteraction<TNamespace extends NamespaceEnums> {\r\n constructor(dbi: DBI<TNamespace>, cfg: Omit<DBIBaseInteraction<TNamespace>, \"dbi\">) {\r\n this.dbi = dbi;\r\n this.name = cfg.name;\r\n this.description = cfg.description;\r\n this.onExecute = cfg.onExecute;\r\n this.type = cfg.type;\r\n this.options = cfg.options;\r\n this.other = cfg.other;\r\n this.publish = cfg.publish ?? dbi.data.clients.first()?.namespace;\r\n this.rateLimits = cfg.rateLimits ?? [];\r\n }\r\n\r\n publish?: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n dbi: DBI<TNamespace>;\r\n name: string;\r\n description: string;\r\n readonly type: TDBIInteractionTypes;\r\n options?: any | any[];\r\n other?: Record<string, any> & { messageCommand?: { aliases?: string[] } };\r\n rateLimits?: DBIRateLimit[];\r\n toJSON(overrides: any): any { }\r\n\r\n onExecute(ctx: IDBIBaseExecuteCtx<TNamespace>): Promise<void> | void {\r\n\r\n }\r\n}"]}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "stuffs": "^0.1.21"
12
12
  },
13
13
  "name": "@mostfeatured/dbi",
14
- "version": "0.0.91",
14
+ "version": "0.0.93",
15
15
  "main": "dist/index.js",
16
16
  "type": "commonjs",
17
17
  "private": false,
package/src/Events.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { NamespaceEnums, NamespaceData } from "../generated/namespaceData";
2
2
  import { DBI } from "./DBI";
3
3
  import { TDBIMessageCommandArgumentErrorTypes } from "./methods/handleMessageCommands";
4
- import { ClientEvents } from "./types/Event";
4
+ import { ClientEvents, DBIEvent } from "./types/Event";
5
5
  import { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from "./types/Interaction";
6
6
  import { FakeMessageInteraction } from "./types/other/FakeMessageInteraction";
7
7
  import { DBILocale } from "./types/other/Locale";
@@ -10,7 +10,7 @@ import Discord from "discord.js";
10
10
  export type TDBIEventNames = "beforeInteraction" | "afterInteraction" | "interactionRateLimit" | "beforeEvent" | "afterEvent" | "interactionError" | "eventError" | "messageCommandArgumentError";
11
11
 
12
12
  export type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {
13
- [K in keyof (ClientEvents & NamespaceData[TNamespace]["customEvents"])]: { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: K } & (ClientEvents & NamespaceData[TNamespace]["customEvents"])[K]
13
+ [K in keyof (ClientEvents & NamespaceData[TNamespace]["customEvents"])]: { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: K, dbiEvent: DBIEvent<TNamespace> } & (ClientEvents & NamespaceData[TNamespace]["customEvents"])[K]
14
14
  }[keyof (ClientEvents & NamespaceData[TNamespace]["customEvents"])];
15
15
 
16
16
  export class Events<TNamespace extends NamespaceEnums> {
@@ -29,7 +29,7 @@ export class Events<TNamespace extends NamespaceEnums> {
29
29
  eventError: []
30
30
  }
31
31
  }
32
-
32
+
33
33
  async trigger(name: TDBIEventNames, data: any): Promise<boolean> {
34
34
  let handlers = this.handlers[name];
35
35
  if (!handlers) return true;
@@ -40,7 +40,6 @@ export class Events<TNamespace extends NamespaceEnums> {
40
40
  }
41
41
  return true;
42
42
  }
43
-
44
43
 
45
44
  on(
46
45
  eventName: "beforeInteraction" | "afterInteraction",
@@ -62,7 +61,7 @@ export class Events<TNamespace extends NamespaceEnums> {
62
61
 
63
62
  on(
64
63
  eventName: "eventError",
65
- handler: (data: TDBIEventHandlerCtx<TNamespace> & { error: any }) => Promise<boolean> | boolean,
64
+ handler: (data: TDBIEventHandlerCtx<TNamespace> & { error: any, dbiEvent: DBIEvent<TNamespace> }) => Promise<boolean> | boolean,
66
65
  options?: { once: boolean }
67
66
  ): (() => any);
68
67
 
@@ -6,12 +6,12 @@ export function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {
6
6
 
7
7
  function getClientByEvent(value) {
8
8
  return value.triggerType == "OneByOne"
9
- ? dbi.data.clients.next(`Event:${value.id}`)
10
- : value.triggerType == "OneByOneGlobal"
11
- ? dbi.data.clients.next("Event")
12
- : value.triggerType == "Random"
13
- ? dbi.data.clients.random()
14
- : dbi.data.clients.first();
9
+ ? dbi.data.clients.next(`Event:${value.id}`)
10
+ : value.triggerType == "OneByOneGlobal"
11
+ ? dbi.data.clients.next("Event")
12
+ : value.triggerType == "Random"
13
+ ? dbi.data.clients.random()
14
+ : dbi.data.clients.first();
15
15
  }
16
16
 
17
17
  async function handle(eventName: string, ...args: any[]) {
@@ -19,7 +19,7 @@ export function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {
19
19
 
20
20
  let isDirect = args?.[0]?._DIRECT_ ?? false;
21
21
  if (isDirect) delete args[0]._DIRECT_;
22
-
22
+
23
23
  let ctxArgs =
24
24
  isDirect
25
25
  ? args[0]
@@ -36,11 +36,10 @@ export function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {
36
36
  return all;
37
37
  }, null);
38
38
  let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;
39
-
39
+
40
40
  let locale = guildLocale ? { guild: guildLocale } : null;
41
-
42
- if (!await dbi.events.trigger("beforeEvent", { eventName, ...ctxArgs, other, locale })) return;
43
-
41
+
42
+
44
43
  let ordered = [];
45
44
  let unOrdered = [];
46
45
  for (let i = 0; i < dbi.data.events.size; i++) {
@@ -58,18 +57,20 @@ export function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {
58
57
 
59
58
  for (let i = 0; i < unOrdered.length; i++) {
60
59
  const value = unOrdered[i];
61
-
60
+
62
61
  if (value?.disabled) continue;
63
62
 
63
+ if (!(await dbi.events.trigger("beforeEvent", { ...arg, dbiEvent: value }))) continue;
64
+
64
65
  if (dbi.config.strict) {
65
66
  value.onExecute({ ...arg, nextClient: getClientByEvent(value) });
66
67
  } else {
67
68
  try {
68
69
  value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {
69
- dbi.events.trigger("eventError", Object.assign(arg, { error }));
70
+ dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
70
71
  });
71
72
  } catch (error) {
72
- dbi.events.trigger("eventError", Object.assign(arg, { error }));
73
+ dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
73
74
  }
74
75
  }
75
76
  }
@@ -79,15 +80,17 @@ export function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {
79
80
 
80
81
  if (value?.disabled) continue;
81
82
 
83
+ if (!(await dbi.events.trigger("beforeEvent", { ...arg, dbiEvent: value }))) continue;
84
+
82
85
  if (dbi.config.strict) {
83
86
  await value.onExecute({ ...arg, nextClient: getClientByEvent(value) });
84
87
  } else {
85
88
  try {
86
89
  await value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {
87
- dbi.events.trigger("eventError", Object.assign(arg, { error }));
90
+ dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
88
91
  });
89
92
  } catch (error) {
90
- await dbi.events.trigger("eventError", Object.assign(arg, { error }));
93
+ await dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
91
94
  }
92
95
  }
93
96
  }
@@ -98,7 +101,7 @@ export function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {
98
101
  let firstClient = dbi.data.clients.first().client;
99
102
  let originalEmit = firstClient.emit;
100
103
 
101
- firstClient.emit = function(eventName, ...args) {
104
+ firstClient.emit = function (eventName, ...args) {
102
105
  handle(eventName, ...args);
103
106
  return originalEmit.call(this, eventName, ...args);
104
107
  }
@@ -13,13 +13,13 @@ export type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<T
13
13
 
14
14
  export interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {
15
15
  interaction:
16
- | Discord.ChatInputCommandInteraction
17
- | Discord.UserContextMenuCommandInteraction
18
- | Discord.MessageContextMenuCommandInteraction
19
- | Discord.ModalSubmitInteraction
20
- | Discord.AutocompleteInteraction
21
- | Discord.AnySelectMenuInteraction
22
- | Discord.ButtonInteraction;
16
+ | Discord.ChatInputCommandInteraction
17
+ | Discord.UserContextMenuCommandInteraction
18
+ | Discord.MessageContextMenuCommandInteraction
19
+ | Discord.ModalSubmitInteraction
20
+ | Discord.AutocompleteInteraction
21
+ | Discord.AnySelectMenuInteraction
22
+ | Discord.ButtonInteraction;
23
23
  locale: {
24
24
  user: DBILocale<TNamespace>,
25
25
  guild?: DBILocale<TNamespace>
@@ -74,14 +74,14 @@ export class DBIBaseInteraction<TNamespace extends NamespaceEnums> {
74
74
  this.publish = cfg.publish ?? dbi.data.clients.first()?.namespace;
75
75
  this.rateLimits = cfg.rateLimits ?? [];
76
76
  }
77
-
77
+
78
78
  publish?: NamespaceData[TNamespace]["clientNamespaces"];
79
79
  dbi: DBI<TNamespace>;
80
80
  name: string;
81
81
  description: string;
82
82
  readonly type: TDBIInteractionTypes;
83
83
  options?: any | any[];
84
- other?: Record<string, any> & { messageCommand: { aliases: string[] } };
84
+ other?: Record<string, any> & { messageCommand?: { aliases?: string[] } };
85
85
  rateLimits?: DBIRateLimit[];
86
86
  toJSON(overrides: any): any { }
87
87