@mostfeatured/dbi 0.1.1 → 0.1.3

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
@@ -24,21 +24,21 @@ export declare class Events<TNamespace extends NamespaceEnums> {
24
24
  trigger(name: TDBIEventNames, data: any): Promise<boolean>;
25
25
  on(eventName: "beforeInteraction" | "afterInteraction", handler: (data: IDBIBaseExecuteCtx<TNamespace>) => Promise<boolean> | boolean, options?: {
26
26
  once: boolean;
27
- }): (() => any);
27
+ }): () => any;
28
28
  on(eventName: "interactionError", handler: (data: IDBIBaseExecuteCtx<TNamespace> & {
29
29
  error: any;
30
30
  }) => Promise<boolean> | boolean, options?: {
31
31
  once: boolean;
32
- }): (() => any);
32
+ }): () => any;
33
33
  on(eventName: "beforeEvent" | "afterEvent", handler: (data: TDBIEventHandlerCtx<TNamespace>) => Promise<boolean> | boolean, options?: {
34
34
  once: boolean;
35
- }): (() => any);
35
+ }): () => any;
36
36
  on(eventName: "eventError", handler: (data: TDBIEventHandlerCtx<TNamespace> & {
37
37
  error: any;
38
38
  dbiEvent: DBIEvent<TNamespace>;
39
39
  }) => Promise<boolean> | boolean, options?: {
40
40
  once: boolean;
41
- }): (() => any);
41
+ }): () => any;
42
42
  on(eventName: "interactionRateLimit", handler: (data: Omit<IDBIBaseExecuteCtx<TNamespace>, "other" | "setRateLimit"> & {
43
43
  rateLimit: {
44
44
  type: TDBIRateLimitTypes;
@@ -47,7 +47,7 @@ export declare class Events<TNamespace extends NamespaceEnums> {
47
47
  };
48
48
  }) => Promise<boolean> | boolean, options?: {
49
49
  once: boolean;
50
- }): (() => any);
50
+ }): () => any;
51
51
  on(eventName: "messageCommandArgumentError", handler: (data: {
52
52
  message: Discord.Message;
53
53
  interaction: FakeMessageInteraction;
@@ -64,7 +64,7 @@ export declare class Events<TNamespace extends NamespaceEnums> {
64
64
  };
65
65
  }) => Promise<boolean> | boolean, options?: {
66
66
  once: boolean;
67
- }): (() => any);
67
+ }): () => any;
68
68
  off(eventName: TDBIEventNames, handler: (data: any) => Promise<boolean> | boolean): ((data: any) => boolean | Promise<boolean>)[];
69
69
  }
70
70
  //# sourceMappingURL=Events.d.ts.map
@@ -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":"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"}
package/dist/Events.js CHANGED
@@ -13,7 +13,7 @@ class Events {
13
13
  beforeEvent: [],
14
14
  afterEvent: [],
15
15
  interactionError: [],
16
- eventError: []
16
+ eventError: [],
17
17
  };
18
18
  }
19
19
  async trigger(name, data) {
@@ -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;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
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AA6BA,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,CAAC;IACJ,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;IAgED,EAAE,CACA,SAAyB,EACzB,OAAkD,EAClD,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAE5C,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,CAAC;SACH;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,CAAC;SACH;IACH,CAAC;IAED,GAAG,CACD,SAAyB,EACzB,OAAkD;QAElD,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;AAzHD,wBAyHC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\r\nimport { DBI } from \"./DBI\";\r\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\r\nimport { TDBIValueName } from \"./types/ChatInput/ChatInputOptions\";\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 =\r\n | \"beforeInteraction\"\r\n | \"afterInteraction\"\r\n | \"interactionRateLimit\"\r\n | \"beforeEvent\"\r\n | \"afterEvent\"\r\n | \"interactionError\"\r\n | \"eventError\"\r\n | \"messageCommandArgumentError\";\r\n\r\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\r\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: {\r\n other: Record<string, any>;\r\n locale?: { guild: DBILocale<TNamespace> };\r\n eventName: K;\r\n dbiEvent: DBIEvent<TNamespace>;\r\n } & (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: (\r\n data: IDBIBaseExecuteCtx<TNamespace>\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"interactionError\",\r\n handler: (\r\n data: IDBIBaseExecuteCtx<TNamespace> & { error: any }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"beforeEvent\" | \"afterEvent\",\r\n handler: (\r\n data: TDBIEventHandlerCtx<TNamespace>\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"eventError\",\r\n handler: (\r\n data: TDBIEventHandlerCtx<TNamespace> & {\r\n error: any;\r\n dbiEvent: DBIEvent<TNamespace>;\r\n }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"interactionRateLimit\",\r\n handler: (\r\n data: Omit<IDBIBaseExecuteCtx<TNamespace>, \"other\" | \"setRateLimit\"> & {\r\n rateLimit: { type: TDBIRateLimitTypes; duration: number; at: number };\r\n }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandArgumentError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n error: {\r\n type: TDBIMessageCommandArgumentErrorTypes;\r\n option: any;\r\n index: number;\r\n extra?: any;\r\n };\r\n value: any;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: TDBIEventNames,\r\n handler: (data: any) => Promise<boolean> | boolean,\r\n options: { once: boolean } = { once: false }\r\n ): () => 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(\r\n eventName: TDBIEventNames,\r\n handler: (data: any) => Promise<boolean> | boolean\r\n ) {\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}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessageCommands.d.ts","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,OAAO,EAAgD,MAAM,YAAY,CAAC;AACxI,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAO7B,MAAM,MAAM,oCAAoC,GAAG,uBAAuB,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAE/U,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,iBA4TrF"}
1
+ {"version":3,"file":"handleMessageCommands.d.ts","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EAGR,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAO7B,MAAM,MAAM,oCAAoC,GAC5C,uBAAuB,GACvB,WAAW,GACX,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,oBAAoB,GACpB,uBAAuB,CAAC;AAE5B,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,EACxB,OAAO,EAAE,OAAO,iBA2ZjB"}
@@ -6,23 +6,24 @@ const FakeMessageInteraction_1 = require("../types/other/FakeMessageInteraction"
6
6
  const INTEGER_REGEX = /^-?\d+$/;
7
7
  const NUMBER_REGEX = /^-?\d+(?:\.\d+)?$/;
8
8
  async function handleMessageCommands(dbi, message) {
9
- const chatInputs = dbi.data.interactions.filter(i => i.type === "ChatInput");
9
+ const chatInputs = dbi.data.interactions.filter((i) => i.type === "ChatInput");
10
10
  const prefixes = dbi.config.messageCommands.prefixes ?? [];
11
11
  if (!prefixes.length)
12
12
  return;
13
13
  const content = message.content;
14
- const usedPrefix = prefixes.find(p => content.startsWith(p));
14
+ const usedPrefix = prefixes.find((p) => content.startsWith(p));
15
15
  if (!usedPrefix)
16
16
  return;
17
17
  const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);
18
18
  const contentLower = contentWithoutPrefix.toLowerCase();
19
- let locale = message.guild.preferredLocale?.split("-")?.at(0) || dbi.config.defaults.locale;
19
+ let locale = message.guild.preferredLocale?.split("-")?.at(0) ||
20
+ dbi.config.defaults.locale;
20
21
  let usedAlias;
21
- let chatInput = chatInputs.find(i => {
22
+ let chatInput = chatInputs.find((i) => {
22
23
  let found = contentLower.startsWith(i.name);
23
24
  if (found)
24
25
  return true;
25
- let alias = i.other?.messageCommand?.aliases?.find(a => contentLower.startsWith(a));
26
+ let alias = i.other?.messageCommand?.aliases?.find((a) => contentLower.startsWith(a));
26
27
  if (alias) {
27
28
  usedAlias = alias;
28
29
  return true;
@@ -31,12 +32,13 @@ async function handleMessageCommands(dbi, message) {
31
32
  });
32
33
  let commandName = usedAlias ?? chatInput?.name;
33
34
  if (!chatInput) {
34
- fLoop: for (const [localeInterName, localeData] of dbi.data.interactionLocales) {
35
+ fLoop: for (const [localeInterName, localeData] of dbi.data
36
+ .interactionLocales) {
35
37
  for (const [localeName, translation] of Object.entries(localeData.data || {})) {
36
38
  if (contentLower.startsWith(translation.name)) {
37
39
  commandName = translation.name;
38
40
  locale = localeName;
39
- chatInput = chatInputs.find(i => i.name === localeData.name);
41
+ chatInput = chatInputs.find((i) => i.name === localeData.name);
40
42
  break fLoop;
41
43
  }
42
44
  }
@@ -64,17 +66,17 @@ async function handleMessageCommands(dbi, message) {
64
66
  if (option.autocomplete && option.onComplete) {
65
67
  let choices = await option.onComplete({
66
68
  interaction,
67
- value
69
+ value,
68
70
  });
69
71
  if (!choices.length)
70
72
  choices = await option.onComplete({
71
73
  interaction,
72
- value: ""
74
+ value: "",
73
75
  });
74
76
  if (choices.length > 20)
75
77
  throw new Error("Autocomplete returned more than 20 choices.");
76
78
  lastExtra = choices;
77
- if (!choices.find(c => c.name === value || c.value === value)) {
79
+ if (!choices.find((c) => c.name === value || c.value === value)) {
78
80
  if (value) {
79
81
  errorType = "InvalidCompleteChoice";
80
82
  break;
@@ -88,9 +90,16 @@ async function handleMessageCommands(dbi, message) {
88
90
  }
89
91
  if (option.choices) {
90
92
  const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;
91
- const choicesLocaleData = localeData?.[locale]?.options?.[option.name]?.choices;
92
- if (!option.choices.find(c => c.name === value || c.value === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {
93
- lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));
93
+ const choicesLocaleData = localeData?.[locale]?.options?.[option.name]
94
+ ?.choices;
95
+ if (!option.choices.find((c) => c.name === value ||
96
+ c.value === value ||
97
+ (choicesLocaleData?.[c.value] &&
98
+ choicesLocaleData?.[c.value] === value))) {
99
+ lastExtra = option.choices.map((c) => ({
100
+ name: choicesLocaleData?.[c.value] ?? c.name,
101
+ value: c.value,
102
+ }));
94
103
  if (value) {
95
104
  errorType = "InvalidChoice";
96
105
  break;
@@ -102,11 +111,11 @@ async function handleMessageCommands(dbi, message) {
102
111
  }
103
112
  break;
104
113
  }
105
- if (option.minLength && value.length < option.minLength) {
114
+ if (option.minLength && value?.length < option.minLength) {
106
115
  errorType = "MinLength";
107
116
  break;
108
117
  }
109
- if (option.maxLength && value.length > option.maxLength) {
118
+ if (option.maxLength && value?.length > option.maxLength) {
110
119
  errorType = "MaxLength";
111
120
  break;
112
121
  }
@@ -119,17 +128,17 @@ async function handleMessageCommands(dbi, message) {
119
128
  if (option.autocomplete && option.onComplete) {
120
129
  let choices = await option.onComplete({
121
130
  interaction,
122
- value
131
+ value,
123
132
  });
124
133
  if (!choices.length)
125
134
  choices = await option.onComplete({
126
135
  interaction,
127
- value: ""
136
+ value: "",
128
137
  });
129
138
  if (choices.length > 20)
130
139
  throw new Error("Autocomplete returned more than 20 choices.");
131
140
  lastExtra = choices;
132
- if (!choices.find(c => c.value === parsedInt || c.name === value)) {
141
+ if (!choices.find((c) => c.value === parsedInt || c.name === value)) {
133
142
  if (value) {
134
143
  errorType = "InvalidCompleteChoice";
135
144
  break;
@@ -144,9 +153,16 @@ async function handleMessageCommands(dbi, message) {
144
153
  }
145
154
  if (option.choices) {
146
155
  const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;
147
- const choicesLocaleData = localeData?.[locale]?.options?.[option.name]?.choices;
148
- if (!option.choices.find(c => c.value === parsedInt || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {
149
- lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));
156
+ const choicesLocaleData = localeData?.[locale]?.options?.[option.name]
157
+ ?.choices;
158
+ if (!option.choices.find((c) => c.value === parsedInt ||
159
+ c.name === value ||
160
+ (choicesLocaleData?.[c.value] &&
161
+ choicesLocaleData?.[c.value] === value))) {
162
+ lastExtra = option.choices.map((c) => ({
163
+ name: choicesLocaleData?.[c.value] ?? c.name,
164
+ value: c.value,
165
+ }));
150
166
  if (value) {
151
167
  errorType = "InvalidChoice";
152
168
  break;
@@ -179,17 +195,17 @@ async function handleMessageCommands(dbi, message) {
179
195
  if (option.autocomplete && option.onComplete) {
180
196
  let choices = await option.onComplete({
181
197
  interaction,
182
- value
198
+ value,
183
199
  });
184
200
  if (!choices.length)
185
201
  choices = await option.onComplete({
186
202
  interaction,
187
- value: ""
203
+ value: "",
188
204
  });
189
205
  if (choices.length > 20)
190
206
  throw new Error("Autocomplete returned more than 20 choices.");
191
207
  lastExtra = choices;
192
- if (!choices.find(c => c.value === parsedFloat || c.name === value)) {
208
+ if (!choices.find((c) => c.value === parsedFloat || c.name === value)) {
193
209
  if (value) {
194
210
  errorType = "InvalidCompleteChoice";
195
211
  break;
@@ -204,9 +220,16 @@ async function handleMessageCommands(dbi, message) {
204
220
  }
205
221
  if (option.choices) {
206
222
  const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;
207
- const choicesLocaleData = localeData?.[locale]?.options?.[option.name]?.choices;
208
- if (!option.choices.find(c => c.value === parsedFloat || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {
209
- lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));
223
+ const choicesLocaleData = localeData?.[locale]?.options?.[option.name]
224
+ ?.choices;
225
+ if (!option.choices.find((c) => c.value === parsedFloat ||
226
+ c.name === value ||
227
+ (choicesLocaleData?.[c.value] &&
228
+ choicesLocaleData?.[c.value] === value))) {
229
+ lastExtra = option.choices.map((c) => ({
230
+ name: choicesLocaleData?.[c.value] ?? c.name,
231
+ value: c.value,
232
+ }));
210
233
  if (value) {
211
234
  errorType = "InvalidChoice";
212
235
  break;
@@ -234,14 +257,16 @@ async function handleMessageCommands(dbi, message) {
234
257
  }
235
258
  case discord_js_1.ApplicationCommandOptionType.Boolean: {
236
259
  let boolKeys = Object.keys(dbi.config.messageCommands.typeAliases.booleans);
237
- if (option.required && !boolKeys.includes(value.toLowerCase())) {
260
+ if (option.required && !boolKeys.includes(value?.toLowerCase?.())) {
238
261
  errorType = "InvalidBoolean";
239
262
  break;
240
263
  }
241
264
  break;
242
265
  }
243
266
  case discord_js_1.ApplicationCommandOptionType.User: {
244
- await message.client.users.fetch(interaction.options.getUserId(option.name)).catch(() => { });
267
+ await message.client.users
268
+ .fetch(interaction.options.getUserId(option.name))
269
+ .catch(() => { });
245
270
  if (option.required && !interaction.options.getUser(option.name)) {
246
271
  errorType = "InvalidUser";
247
272
  break;
@@ -249,15 +274,20 @@ async function handleMessageCommands(dbi, message) {
249
274
  break;
250
275
  }
251
276
  case discord_js_1.ApplicationCommandOptionType.Channel: {
252
- await message.client.channels.fetch(interaction.options.getChannelId(option.name)).catch(() => { });
253
- if (option.required && !interaction.options.getChannel(option.name, null, option.channelTypes)) {
277
+ await message.client.channels
278
+ .fetch(interaction.options.getChannelId(option.name))
279
+ .catch(() => { });
280
+ if (option.required &&
281
+ !interaction.options.getChannel(option.name, null, option.channelTypes)) {
254
282
  errorType = "InvalidChannel";
255
283
  break;
256
284
  }
257
285
  break;
258
286
  }
259
287
  case discord_js_1.ApplicationCommandOptionType.Role: {
260
- await message.guild.roles.fetch(interaction.options.getRoleId(option.name)).catch(() => { });
288
+ await message.guild.roles
289
+ .fetch(interaction.options.getRoleId(option.name))
290
+ .catch(() => { });
261
291
  if (option.required && !interaction.options.getRole(option.name)) {
262
292
  errorType = "InvalidRole";
263
293
  break;
@@ -269,7 +299,8 @@ async function handleMessageCommands(dbi, message) {
269
299
  await message.guild.roles.fetch(mentionableId).catch(() => { });
270
300
  await message.client.channels.fetch(mentionableId).catch(() => { });
271
301
  await message.client.users.fetch(mentionableId).catch(() => { });
272
- if (option.required && !interaction.options.getMentionable(option.name)) {
302
+ if (option.required &&
303
+ !interaction.options.getMentionable(option.name)) {
273
304
  errorType = "InvalidMentionable";
274
305
  break;
275
306
  }
@@ -297,16 +328,19 @@ async function handleMessageCommands(dbi, message) {
297
328
  interaction,
298
329
  message,
299
330
  locale: {
300
- user: dbi.data.locales.get(interaction.locale) || dbi.data.locales.get(dbi.config.defaults.locale),
301
- guild: message.guild?.preferredLocale ? (dbi.data.locales.get(message.guild?.preferredLocale?.split("-")?.at(0)) || dbi.data.locales.get(dbi.config.defaults.locale)) : null
331
+ user: dbi.data.locales.get(interaction.locale) ||
332
+ dbi.data.locales.get(dbi.config.defaults.locale),
333
+ guild: message.guild?.preferredLocale
334
+ ? dbi.data.locales.get(message.guild?.preferredLocale?.split("-")?.at(0)) || dbi.data.locales.get(dbi.config.defaults.locale)
335
+ : null,
302
336
  },
303
337
  error: {
304
338
  type: errorType,
305
339
  option: lastOption,
306
340
  extra: lastExtra,
307
- index: lastIndex
341
+ index: lastIndex,
308
342
  },
309
- value: lastValue
343
+ value: lastValue,
310
344
  });
311
345
  if (!res)
312
346
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApplicationCommandType, ChatInputCommandInteraction, Message, MessagePayload, ApplicationCommandOptionType } from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\r\nimport { TDBILocaleString } from \"../types/other/Locale\";\r\n\r\nconst INTEGER_REGEX = /^-?\\d+$/;\r\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\r\n\r\nexport type TDBIMessageCommandArgumentErrorTypes = \"MissingRequiredOption\" | \"MinLength\" | \"MaxLength\" | \"InvalidChoice\" | \"InvalidInteger\" | \"MinInteger\" | \"MaxInteger\" | \"InvalidNumber\" | \"MinNumber\" | \"MaxNumber\" | \"InvalidBoolean\" | \"InvalidUser\" | \"InvalidChannel\" | \"InvalidRole\" | \"InvalidMentionable\" | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(dbi: DBI<NamespaceEnums>, message: Message) {\r\n const chatInputs = dbi.data.interactions.filter(i => i.type === \"ChatInput\");\r\n const prefixes = dbi.config.messageCommands.prefixes ?? [];\r\n if (!prefixes.length) return;\r\n const content = message.content;\r\n const usedPrefix = prefixes.find(p => content.startsWith(p));\r\n if (!usedPrefix) return;\r\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\r\n const contentLower = contentWithoutPrefix.toLowerCase();\r\n\r\n let locale: string = message.guild.preferredLocale?.split(\"-\")?.at(0) || dbi.config.defaults.locale as any;\r\n let usedAlias: string | undefined;\r\n let chatInput = chatInputs.find(i => {\r\n let found = contentLower.startsWith(i.name);\r\n if (found) return true;\r\n let alias = i.other?.messageCommand?.aliases?.find(a => contentLower.startsWith(a));\r\n if (alias) {\r\n usedAlias = alias;\r\n return true;\r\n }\r\n return false;\r\n });\r\n let commandName = usedAlias ?? chatInput?.name;\r\n\r\n if (!chatInput) {\r\n fLoop: for (const [localeInterName, localeData] of dbi.data.interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(localeData.data || {})) {\r\n if (contentLower.startsWith(translation.name)) {\r\n commandName = translation.name;\r\n locale = localeName;\r\n chatInput = chatInputs.find(i => i.name === localeData.name);\r\n break fLoop;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!chatInput) return;\r\n\r\n const interaction = new FakeMessageInteraction(dbi, message, chatInput as any, locale, commandName, usedPrefix);\r\n\r\n if (chatInput.options.length) {\r\n let errorType: TDBIMessageCommandArgumentErrorTypes;\r\n let lastOption: any;\r\n let lastValue: any;\r\n let lastExtra: any;\r\n let lastIndex: number;\r\n for (let i = 0; i < chatInput.options.length; i++) {\r\n lastIndex = i;\r\n const option: any = interaction.dbiChatInputOptions[i];\r\n const value = interaction.parsedArgs.get(option.name)?.value;\r\n\r\n lastOption = option;\r\n lastValue = value;\r\n\r\n switch (option.type) {\r\n case ApplicationCommandOptionType.String: {\r\n\r\n if (!option.required && !value) break;\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.name === value || c.value === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.name === value || c.value === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (option.minLength && value.length < option.minLength) {\r\n errorType = \"MinLength\";\r\n break;\r\n }\r\n if (option.maxLength && value.length > option.maxLength) {\r\n errorType = \"MaxLength\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedInt = parseInt(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.value === parsedInt || c.name === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.value === parsedInt || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!INTEGER_REGEX.test(value)) {\r\n errorType = \"InvalidInteger\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedInt < option.minValue) {\r\n errorType = \"MinInteger\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedInt > option.maxValue) {\r\n errorType = \"MaxInteger\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedFloat = parseFloat(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.value === parsedFloat || c.name === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.value === parsedFloat || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!NUMBER_REGEX.test(value)) {\r\n errorType = \"InvalidNumber\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedFloat < option.minValue) {\r\n errorType = \"MinNumber\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedFloat > option.maxValue) {\r\n errorType = \"MaxNumber\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n let boolKeys = Object.keys(dbi.config.messageCommands.typeAliases.booleans);\r\n if (option.required && !boolKeys.includes(value.toLowerCase())) {\r\n errorType = \"InvalidBoolean\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n await message.client.users.fetch(interaction.options.getUserId(option.name)).catch(() => { });\r\n if (option.required && !interaction.options.getUser(option.name)) {\r\n errorType = \"InvalidUser\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n await message.client.channels.fetch(interaction.options.getChannelId(option.name)).catch(() => { });\r\n if (option.required && !interaction.options.getChannel(option.name, null, option.channelTypes)) {\r\n errorType = \"InvalidChannel\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n await message.guild.roles.fetch(interaction.options.getRoleId(option.name)).catch(() => { });\r\n if (option.required && !interaction.options.getRole(option.name)) {\r\n errorType = \"InvalidRole\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n let mentionableId = interaction.options.getMentionableId(option.name);\r\n await message.guild.roles.fetch(mentionableId).catch(() => { });\r\n await message.client.channels.fetch(mentionableId).catch(() => { });\r\n await message.client.users.fetch(mentionableId).catch(() => { });\r\n if (option.required && !interaction.options.getMentionable(option.name)) {\r\n errorType = \"InvalidMentionable\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n break;\r\n } else {\r\n lastExtra = null;\r\n lastIndex = null;\r\n lastOption = null;\r\n lastValue = null;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\r\n interaction,\r\n message,\r\n locale: {\r\n user: dbi.data.locales.get(interaction.locale) || dbi.data.locales.get(dbi.config.defaults.locale),\r\n guild: message.guild?.preferredLocale ? (dbi.data.locales.get(message.guild?.preferredLocale?.split(\"-\")?.at(0)) || dbi.data.locales.get(dbi.config.defaults.locale)) : null\r\n },\r\n error: {\r\n type: errorType,\r\n option: lastOption,\r\n extra: lastExtra,\r\n index: lastIndex\r\n },\r\n value: lastValue\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n interaction.init();\r\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\r\n}"]}
1
+ {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n ApplicationCommandType,\r\n ChatInputCommandInteraction,\r\n Message,\r\n MessagePayload,\r\n ApplicationCommandOptionType,\r\n} from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\r\nimport { TDBILocaleString } from \"../types/other/Locale\";\r\n\r\nconst INTEGER_REGEX = /^-?\\d+$/;\r\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\r\n\r\nexport type TDBIMessageCommandArgumentErrorTypes =\r\n | \"MissingRequiredOption\"\r\n | \"MinLength\"\r\n | \"MaxLength\"\r\n | \"InvalidChoice\"\r\n | \"InvalidInteger\"\r\n | \"MinInteger\"\r\n | \"MaxInteger\"\r\n | \"InvalidNumber\"\r\n | \"MinNumber\"\r\n | \"MaxNumber\"\r\n | \"InvalidBoolean\"\r\n | \"InvalidUser\"\r\n | \"InvalidChannel\"\r\n | \"InvalidRole\"\r\n | \"InvalidMentionable\"\r\n | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(\r\n dbi: DBI<NamespaceEnums>,\r\n message: Message\r\n) {\r\n const chatInputs = dbi.data.interactions.filter(\r\n (i) => i.type === \"ChatInput\"\r\n );\r\n const prefixes = dbi.config.messageCommands.prefixes ?? [];\r\n if (!prefixes.length) return;\r\n const content = message.content;\r\n const usedPrefix = prefixes.find((p) => content.startsWith(p));\r\n if (!usedPrefix) return;\r\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\r\n const contentLower = contentWithoutPrefix.toLowerCase();\r\n\r\n let locale: string =\r\n message.guild.preferredLocale?.split(\"-\")?.at(0) ||\r\n (dbi.config.defaults.locale as any);\r\n let usedAlias: string | undefined;\r\n let chatInput = chatInputs.find((i) => {\r\n let found = contentLower.startsWith(i.name);\r\n if (found) return true;\r\n let alias = i.other?.messageCommand?.aliases?.find((a) =>\r\n contentLower.startsWith(a)\r\n );\r\n if (alias) {\r\n usedAlias = alias;\r\n return true;\r\n }\r\n return false;\r\n });\r\n let commandName = usedAlias ?? chatInput?.name;\r\n\r\n if (!chatInput) {\r\n fLoop: for (const [localeInterName, localeData] of dbi.data\r\n .interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(\r\n localeData.data || {}\r\n )) {\r\n if (contentLower.startsWith(translation.name)) {\r\n commandName = translation.name;\r\n locale = localeName;\r\n chatInput = chatInputs.find((i) => i.name === localeData.name);\r\n break fLoop;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!chatInput) return;\r\n\r\n const interaction = new FakeMessageInteraction(\r\n dbi,\r\n message,\r\n chatInput as any,\r\n locale,\r\n commandName,\r\n usedPrefix\r\n );\r\n\r\n if (chatInput.options.length) {\r\n let errorType: TDBIMessageCommandArgumentErrorTypes;\r\n let lastOption: any;\r\n let lastValue: any;\r\n let lastExtra: any;\r\n let lastIndex: number;\r\n for (let i = 0; i < chatInput.options.length; i++) {\r\n lastIndex = i;\r\n const option: any = interaction.dbiChatInputOptions[i];\r\n const value = interaction.parsedArgs.get(option.name)?.value;\r\n\r\n lastOption = option;\r\n lastValue = value;\r\n\r\n switch (option.type) {\r\n case ApplicationCommandOptionType.String: {\r\n if (!option.required && !value) break;\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find((c) => c.name === value || c.value === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.name === value ||\r\n c.value === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (option.minLength && value?.length < option.minLength) {\r\n errorType = \"MinLength\";\r\n break;\r\n }\r\n if (option.maxLength && value?.length > option.maxLength) {\r\n errorType = \"MaxLength\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedInt = parseInt(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedInt || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedInt ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!INTEGER_REGEX.test(value)) {\r\n errorType = \"InvalidInteger\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedInt < option.minValue) {\r\n errorType = \"MinInteger\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedInt > option.maxValue) {\r\n errorType = \"MaxInteger\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedFloat = parseFloat(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedFloat || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedFloat ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!NUMBER_REGEX.test(value)) {\r\n errorType = \"InvalidNumber\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedFloat < option.minValue) {\r\n errorType = \"MinNumber\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedFloat > option.maxValue) {\r\n errorType = \"MaxNumber\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n let boolKeys = Object.keys(\r\n dbi.config.messageCommands.typeAliases.booleans\r\n );\r\n if (option.required && !boolKeys.includes(value?.toLowerCase?.())) {\r\n errorType = \"InvalidBoolean\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n await message.client.users\r\n .fetch(interaction.options.getUserId(option.name))\r\n .catch(() => {});\r\n if (option.required && !interaction.options.getUser(option.name)) {\r\n errorType = \"InvalidUser\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n await message.client.channels\r\n .fetch(interaction.options.getChannelId(option.name))\r\n .catch(() => {});\r\n if (\r\n option.required &&\r\n !interaction.options.getChannel(\r\n option.name,\r\n null,\r\n option.channelTypes\r\n )\r\n ) {\r\n errorType = \"InvalidChannel\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n await message.guild.roles\r\n .fetch(interaction.options.getRoleId(option.name))\r\n .catch(() => {});\r\n if (option.required && !interaction.options.getRole(option.name)) {\r\n errorType = \"InvalidRole\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n let mentionableId = interaction.options.getMentionableId(option.name);\r\n await message.guild.roles.fetch(mentionableId).catch(() => {});\r\n await message.client.channels.fetch(mentionableId).catch(() => {});\r\n await message.client.users.fetch(mentionableId).catch(() => {});\r\n if (\r\n option.required &&\r\n !interaction.options.getMentionable(option.name)\r\n ) {\r\n errorType = \"InvalidMentionable\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n break;\r\n } else {\r\n lastExtra = null;\r\n lastIndex = null;\r\n lastOption = null;\r\n lastValue = null;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\r\n interaction,\r\n message,\r\n locale: {\r\n user:\r\n dbi.data.locales.get(interaction.locale) ||\r\n dbi.data.locales.get(dbi.config.defaults.locale),\r\n guild: message.guild?.preferredLocale\r\n ? dbi.data.locales.get(\r\n message.guild?.preferredLocale?.split(\"-\")?.at(0)\r\n ) || dbi.data.locales.get(dbi.config.defaults.locale)\r\n : null,\r\n },\r\n error: {\r\n type: errorType,\r\n option: lastOption,\r\n extra: lastExtra,\r\n index: lastIndex,\r\n },\r\n value: lastValue,\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n interaction.init();\r\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"hookInteractionListeners.d.ts","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI/D,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,GAAG,CAmJ5E"}
1
+ {"version":3,"file":"hookInteractionListeners.d.ts","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAY/D,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,GAAG,CA0O5E"}