@mostfeatured/dbi 0.0.92 → 0.0.94
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 +3 -1
- package/dist/Events.d.ts.map +1 -1
- package/dist/Events.js.map +1 -1
- package/dist/methods/hookEventListeners.d.ts.map +1 -1
- package/dist/methods/hookEventListeners.js +8 -6
- package/dist/methods/hookEventListeners.js.map +1 -1
- package/dist/types/ChatInput/ChatInputOptions.d.ts +14 -1
- package/dist/types/ChatInput/ChatInputOptions.d.ts.map +1 -1
- package/dist/types/ChatInput/ChatInputOptions.js +2 -1
- package/dist/types/ChatInput/ChatInputOptions.js.map +1 -1
- package/dist/types/other/FakeMessageInteraction.js +1 -1
- package/dist/types/other/FakeMessageInteraction.js.map +1 -1
- package/package.json +1 -1
- package/src/Events.ts +4 -5
- package/src/methods/hookEventListeners.ts +20 -17
- package/src/types/ChatInput/ChatInputOptions.ts +5 -4
- package/src/types/other/FakeMessageInteraction.ts +1 -1
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);
|
package/dist/Events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,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,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"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"}
|
package/dist/Events.js.map
CHANGED
|
@@ -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;
|
|
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,
|
|
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",
|
|
63
|
+
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
catch (error) {
|
|
67
|
-
dbi.events.trigger("eventError",
|
|
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",
|
|
83
|
+
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
82
84
|
});
|
|
83
85
|
}
|
|
84
86
|
catch (error) {
|
|
85
|
-
await dbi.events.trigger("eventError",
|
|
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":";;;AAAA,2CAAmC;AAInC,SAAgB,kBAAkB,CAAC,GAAwB;IAEzD,SAAS,gBAAgB,CAAC,KAAK;QAC7B,OAAO,KAAK,CAAC,WAAW,IAAI,UAAU;
|
|
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}"]}
|
|
@@ -28,6 +28,9 @@ export declare class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
|
|
|
28
28
|
constructor(dbi: DBI<TNamespace>);
|
|
29
29
|
stringAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxLength & {
|
|
30
30
|
onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<string>[]> | TDBIValueName<string>[];
|
|
31
|
+
messageCommands?: {
|
|
32
|
+
rest?: boolean;
|
|
33
|
+
};
|
|
31
34
|
}): {
|
|
32
35
|
type: Discord.ApplicationCommandOptionType;
|
|
33
36
|
name: string;
|
|
@@ -42,6 +45,9 @@ export declare class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
|
|
|
42
45
|
};
|
|
43
46
|
stringChoices(cfg: TDBIBaseOption & TDBIMinMaxLength & {
|
|
44
47
|
choices: TDBIValueName<string>[];
|
|
48
|
+
messageCommands?: {
|
|
49
|
+
rest?: boolean;
|
|
50
|
+
};
|
|
45
51
|
}): {
|
|
46
52
|
type: Discord.ApplicationCommandOptionType;
|
|
47
53
|
name: string;
|
|
@@ -53,7 +59,11 @@ export declare class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
|
|
|
53
59
|
min_length: number;
|
|
54
60
|
required: boolean;
|
|
55
61
|
};
|
|
56
|
-
string(cfg: TDBIBaseOption & TDBIMinMaxLength
|
|
62
|
+
string(cfg: TDBIBaseOption & TDBIMinMaxLength & {
|
|
63
|
+
messageCommands?: {
|
|
64
|
+
rest?: boolean;
|
|
65
|
+
};
|
|
66
|
+
}): {
|
|
57
67
|
type: Discord.ApplicationCommandOptionType;
|
|
58
68
|
name: string;
|
|
59
69
|
description: string;
|
|
@@ -62,6 +72,9 @@ export declare class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
|
|
|
62
72
|
minLength: number;
|
|
63
73
|
min_length: number;
|
|
64
74
|
required: boolean;
|
|
75
|
+
messageCommands: {
|
|
76
|
+
rest?: boolean;
|
|
77
|
+
};
|
|
65
78
|
};
|
|
66
79
|
numberAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & {
|
|
67
80
|
onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> | TDBIValueName<number>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInputOptions.d.ts","sourceRoot":"","sources":["../../../src/types/ChatInput/ChatInputOptions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,eAAe,CAAC,UAAU,SAAS,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,UAAU,CAAC;IACtI,WAAW,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAC7C,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,qBAAa,mBAAmB,CAAC,UAAU,SAAS,cAAc;IAChE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;gBACT,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC;IAGhC,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,gBAAgB,GAAG;QAAE,UAAU,CAAC,GAAG,EAAE,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAA;KAAE;;;;
|
|
1
|
+
{"version":3,"file":"ChatInputOptions.d.ts","sourceRoot":"","sources":["../../../src/types/ChatInput/ChatInputOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInputOptions.js","sourceRoot":"","sources":["../../../src/types/ChatInput/ChatInputOptions.ts"],"names":[],"mappings":"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","sourcesContent":["import Discord from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../../generated/namespaceData\";\r\nimport { DBI } from \"../../DBI\";\r\nimport { IDBIBaseExecuteCtx } from \"../Interaction\";\r\n\r\nexport type TDBIValueName<T> = { value: T, name: string };\r\nexport type TDBIBaseOption = { name: string, description: string, required?: boolean };\r\n\r\nexport type TDBIMinMaxLength = { maxLength?: number, minLength?: number };\r\nexport type TDBIMinMaxValue = { maxValue?: number, minValue?: number };\r\n\r\nexport interface IDBICompleteCtx<TNamespace extends NamespaceEnums, TValueType = string | number> extends IDBIBaseExecuteCtx<TNamespace> { \r\n interaction: Discord.AutocompleteInteraction;\r\n value: TValueType;\r\n}\r\n\r\nexport class DBIChatInputOptions<TNamespace extends NamespaceEnums> {\r\n dbi: DBI<TNamespace>;\r\n constructor(dbi: DBI<TNamespace>) {\r\n this.dbi = dbi;\r\n }\r\n stringAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxLength & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<string>[]> | TDBIValueName<string>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.String,\r\n name: cfg.name,\r\n autocomplete: true,\r\n onComplete: cfg.onComplete,\r\n description: cfg.description,\r\n maxLength: cfg.maxLength,\r\n max_length: cfg.maxLength,\r\n minLength: cfg.minLength,\r\n min_length: cfg.minLength,\r\n required: cfg.required\r\n };\r\n }\r\n stringChoices(cfg: TDBIBaseOption & TDBIMinMaxLength & { choices: TDBIValueName<string>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.String,\r\n name: cfg.name,\r\n choices: cfg.choices,\r\n description: cfg.description,\r\n maxLength: cfg.maxLength,\r\n max_length: cfg.maxLength,\r\n minLength: cfg.minLength,\r\n min_length: cfg.minLength,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n string(cfg: TDBIBaseOption & TDBIMinMaxLength) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.String,\r\n name: cfg.name,\r\n description: cfg.description,\r\n maxLength: cfg.maxLength,\r\n max_length: cfg.maxLength,\r\n minLength: cfg.minLength,\r\n min_length: cfg.minLength,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n numberAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> | TDBIValueName<number>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Number,\r\n name: cfg.name,\r\n autocomplete: true,\r\n onComplete: cfg.onComplete,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n numberChoices(cfg: TDBIBaseOption & TDBIMinMaxValue & { choices: TDBIValueName<number>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Number,\r\n name: cfg.name,\r\n choices: cfg.choices,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n number(cfg: TDBIBaseOption & TDBIMinMaxValue) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Number,\r\n name: cfg.name,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n integerAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> | TDBIValueName<number>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Integer,\r\n name: cfg.name,\r\n autocomplete: true,\r\n onComplete: cfg.onComplete,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n integerChoices(cfg: TDBIBaseOption & TDBIMinMaxValue & { choices: TDBIValueName<number>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Integer,\r\n name: cfg.name,\r\n choices: cfg.choices,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n integer(cfg: TDBIBaseOption & TDBIMinMaxValue) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Integer,\r\n name: cfg.name,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n boolean(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Boolean,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n attachment(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Attachment,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n channel(cfg: TDBIBaseOption & { channelTypes: Discord.ChannelType[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Channel,\r\n name: cfg.name,\r\n description: cfg.description,\r\n channelTypes: cfg.channelTypes,\r\n channel_types: cfg.channelTypes,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n role(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Role,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n }\r\n }\r\n\r\n mentionable(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Mentionable,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n user(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.User,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n };\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"ChatInputOptions.js","sourceRoot":"","sources":["../../../src/types/ChatInput/ChatInputOptions.ts"],"names":[],"mappings":"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","sourcesContent":["import Discord from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../../generated/namespaceData\";\r\nimport { DBI } from \"../../DBI\";\r\nimport { IDBIBaseExecuteCtx } from \"../Interaction\";\r\n\r\nexport type TDBIValueName<T> = { value: T, name: string };\r\nexport type TDBIBaseOption = { name: string, description: string, required?: boolean };\r\n\r\nexport type TDBIMinMaxLength = { maxLength?: number, minLength?: number };\r\nexport type TDBIMinMaxValue = { maxValue?: number, minValue?: number };\r\n\r\nexport interface IDBICompleteCtx<TNamespace extends NamespaceEnums, TValueType = string | number> extends IDBIBaseExecuteCtx<TNamespace> { \r\n interaction: Discord.AutocompleteInteraction;\r\n value: TValueType;\r\n}\r\n\r\nexport class DBIChatInputOptions<TNamespace extends NamespaceEnums> {\r\n dbi: DBI<TNamespace>;\r\n constructor(dbi: DBI<TNamespace>) {\r\n this.dbi = dbi;\r\n }\r\n stringAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxLength & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<string>[]> | TDBIValueName<string>[], messageCommands?: { rest?: boolean } }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.String,\r\n name: cfg.name,\r\n autocomplete: true,\r\n onComplete: cfg.onComplete,\r\n description: cfg.description,\r\n maxLength: cfg.maxLength,\r\n max_length: cfg.maxLength,\r\n minLength: cfg.minLength,\r\n min_length: cfg.minLength,\r\n required: cfg.required\r\n };\r\n }\r\n stringChoices(cfg: TDBIBaseOption & TDBIMinMaxLength & { choices: TDBIValueName<string>[], messageCommands?: { rest?: boolean } }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.String,\r\n name: cfg.name,\r\n choices: cfg.choices,\r\n description: cfg.description,\r\n maxLength: cfg.maxLength,\r\n max_length: cfg.maxLength,\r\n minLength: cfg.minLength,\r\n min_length: cfg.minLength,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n string(cfg: TDBIBaseOption & TDBIMinMaxLength & { messageCommands?: { rest?: boolean } }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.String,\r\n name: cfg.name,\r\n description: cfg.description,\r\n maxLength: cfg.maxLength,\r\n max_length: cfg.maxLength,\r\n minLength: cfg.minLength,\r\n min_length: cfg.minLength,\r\n required: cfg.required,\r\n messageCommands: cfg.messageCommands\r\n };\r\n }\r\n\r\n numberAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> | TDBIValueName<number>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Number,\r\n name: cfg.name,\r\n autocomplete: true,\r\n onComplete: cfg.onComplete,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n numberChoices(cfg: TDBIBaseOption & TDBIMinMaxValue & { choices: TDBIValueName<number>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Number,\r\n name: cfg.name,\r\n choices: cfg.choices,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n number(cfg: TDBIBaseOption & TDBIMinMaxValue) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Number,\r\n name: cfg.name,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n integerAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> | TDBIValueName<number>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Integer,\r\n name: cfg.name,\r\n autocomplete: true,\r\n onComplete: cfg.onComplete,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n integerChoices(cfg: TDBIBaseOption & TDBIMinMaxValue & { choices: TDBIValueName<number>[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Integer,\r\n name: cfg.name,\r\n choices: cfg.choices,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n integer(cfg: TDBIBaseOption & TDBIMinMaxValue) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Integer,\r\n name: cfg.name,\r\n description: cfg.description,\r\n maxValue: cfg.maxValue,\r\n max_value: cfg.maxValue,\r\n minValue: cfg.minValue,\r\n min_value: cfg.minValue,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n boolean(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Boolean,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n attachment(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Attachment,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n channel(cfg: TDBIBaseOption & { channelTypes: Discord.ChannelType[] }) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Channel,\r\n name: cfg.name,\r\n description: cfg.description,\r\n channelTypes: cfg.channelTypes,\r\n channel_types: cfg.channelTypes,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n role(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Role,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n }\r\n }\r\n\r\n mentionable(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.Mentionable,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n };\r\n }\r\n\r\n user(cfg: TDBIBaseOption) {\r\n return {\r\n type: Discord.ApplicationCommandOptionType.User,\r\n name: cfg.name,\r\n description: cfg.description,\r\n required: cfg.required\r\n };\r\n }\r\n}"]}
|
|
@@ -88,7 +88,7 @@ class FakeMessageInteraction /* implements ChatInputCommandInteraction */ {
|
|
|
88
88
|
});
|
|
89
89
|
continue;
|
|
90
90
|
}
|
|
91
|
-
const arg = args.get(option.name) ?? args.get(i - attachmentIndex - namedValueSize);
|
|
91
|
+
const arg = option.messageCommands?.rest ? args._.slice(i).join(" ") : (args.get(option.name) ?? args.get(i - attachmentIndex - namedValueSize));
|
|
92
92
|
if (args.get(option.name))
|
|
93
93
|
namedValueSize++;
|
|
94
94
|
this.parsedArgs.set(option.name, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeMessageInteraction.js","sourceRoot":"","sources":["../../../src/types/other/FakeMessageInteraction.ts"],"names":[],"mappings":"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","sourcesContent":["import { Message, MessagePayload, ApplicationCommandType, ChatInputCommandInteraction, Locale, APIInteractionGuildMember, GuildMember, PermissionsBitField, CacheType, CommandInteractionOptionResolver, CommandOptionDataTypeResolvable, ApplicationCommandOptionType, User, Attachment } from 'discord.js';\r\nimport { TDBIInteractions } from '../Interaction';\r\nimport { plsParseArgs } from \"plsargs\";\r\nimport { DBI } from '../../DBI';\r\nimport { NamespaceEnums } from \"../../../generated/namespaceData\";\r\nimport { ChannelType } from \"discord-api-types/v10\";\r\n\r\nexport class FakeMessageInteraction /* implements ChatInputCommandInteraction */ {\r\n channelId: string;\r\n commandName: string;\r\n appPermissions: any;\r\n applicationId: string;\r\n channel: any;\r\n command: any;\r\n commandGuildId: string;\r\n commandId: any;\r\n commandType: ApplicationCommandType.ChatInput;\r\n // awaitModalSubmit: (...arr: any[]) => any;\r\n // fetchReply: () => Promise<any>;\r\n deferred: boolean = false;\r\n client: any;\r\n createdAt: Date;\r\n ephemeral: boolean = false;\r\n createdTimestamp: number;\r\n guild: any;\r\n guildId: string;\r\n guildLocale: Locale;\r\n id: string;\r\n user: User;\r\n private repliedMessage: Message | undefined;\r\n private lastFollowUp: Message | undefined;\r\n member: GuildMember | APIInteractionGuildMember;\r\n memberPermissions: Readonly<PermissionsBitField>;\r\n parsedArgs = new Map<string, FakeMessageInteractionArgument>();\r\n usedCommandName: string;\r\n fullCommandName: string;\r\n options: any;\r\n dbiChatInput: TDBIInteractions<string | number>;\r\n dbiChatInputOptions: any[];\r\n fake: boolean = true;\r\n _hoistedOptions: any;\r\n _initialized: boolean = false;\r\n\r\n constructor(private dbi: DBI<NamespaceEnums>, private message: Message, chatInput: TDBIInteractions<string | number>, public locale: string, commandName: string, private usedPrefix: string) {\r\n const self = this;\r\n\r\n this.channelId = message.channel.id;\r\n this.commandName = chatInput.name.split(\" \").at(0);\r\n this.appPermissions = message.guild?.members.me.permissionsIn(message.channel as any) ?? new PermissionsBitField(8n);\r\n this.applicationId = message.client.user.id;\r\n this.channel = message.channel as any;\r\n this.commandGuildId = message.guild.id;\r\n this.commandType = ApplicationCommandType.ChatInput;\r\n\r\n this.client = message.client;\r\n this.createdAt = message.createdAt;\r\n this.createdTimestamp = message.createdTimestamp;\r\n this.guild = message.guild;\r\n this.guildId = message.guild?.id;\r\n this.guildLocale = message.guild?.preferredLocale;\r\n this.id = message.guild?.commands.cache.find((cmd) => cmd.name === this.commandName)?.id ?? message.client.application.commands.cache.find((cmd) => cmd.name === this.commandName)?.id ?? \"-1\";\r\n this.locale = message.guild?.preferredLocale;\r\n this.member = message.member;\r\n this.memberPermissions = message.member?.permissions;\r\n this.user = message.author;\r\n\r\n this.usedCommandName = commandName;\r\n this.fullCommandName = chatInput.name;\r\n this.dbiChatInput = chatInput;\r\n this.dbiChatInputOptions = chatInput.options ? chatInput.options.map(i => ({ ...i })) : [];\r\n\r\n {\r\n const argContent = message.content.slice(usedPrefix.length + commandName.length).replace(/ +/, \" \").trim();\r\n const args = plsParseArgs(argContent);\r\n\r\n const options = chatInput.options ?? [];\r\n const atchs = [...message.attachments.values()];\r\n for (let i = 0, attachmentIndex = 0, namedValueSize = 0; i < options.length; i++) {\r\n const option = options[i];\r\n if (!option) break;\r\n if (option.type === ApplicationCommandOptionType.Attachment) {\r\n this.parsedArgs.set(option.name, {\r\n name: option.name,\r\n type: option.type,\r\n value: atchs.at(attachmentIndex)?.url,\r\n attachment: atchs.at(attachmentIndex++)\r\n })\r\n continue;\r\n }\r\n const arg = args.get(option.name) ?? args.get(i - attachmentIndex - namedValueSize);\r\n if (args.get(option.name)) namedValueSize++;\r\n this.parsedArgs.set(option.name, {\r\n name: option.name,\r\n type: option.type,\r\n value: arg\r\n });\r\n }\r\n }\r\n\r\n this.options = {\r\n get(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return {\r\n value: rawValue,\r\n get boolean() { return self.options.getBoolean(name); },\r\n get channel() { return self.options.getChannel(name); },\r\n get string() { return self.options.getString(name); },\r\n get integer() { return self.options.getInteger(name); },\r\n get number() { return self.options.getNumber(name); },\r\n get user() { return self.options.getUser(name); },\r\n get member() { return self.options.getMember(name); },\r\n get role() { return self.options.getRole(name); },\r\n get mentionable() { return self.options.getMentionable(name); },\r\n get attachment() { return self.options.getAttachment(name); }\r\n };\r\n },\r\n get _hoistedOptions() {\r\n return this._hoistedOptions;\r\n },\r\n getSubcommand() {\r\n let splitted = self.fullCommandName.split(\" \");\r\n if (splitted.length === 1) return null;\r\n return splitted.at(-1);\r\n },\r\n getSubcommandGroup() {\r\n let splitted = self.fullCommandName.split(\" \");\r\n if (splitted.length === 3) return splitted[1];\r\n return null;\r\n },\r\n getBoolean(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return !!self.dbi.config.messageCommands.typeAliases.booleans[rawValue.toLowerCase()];\r\n },\r\n getChannel(name: string, _: any, channelType?: ChannelType) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<#|>/g, \"\");\r\n let channel = self.message.client.channels.cache.get(value);\r\n if (!channel) channel = self.message.client.channels.cache.find(c => {\r\n if (self.guildId && (c as any).guildId && (c as any).guildId !== self.guildId) return false;\r\n return (c as any).name === value;\r\n });\r\n if (channelType && channel?.type !== channelType) return null;\r\n return channel;\r\n },\r\n getString(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = `${self.getRawOptionValue(name)}`;\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === rawValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getInteger(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = self.getRawOptionValue(name);\r\n let parsedValue = parseInt(rawValue);\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === parsedValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getNumber(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = self.getRawOptionValue(name);\r\n let parsedValue = parseFloat(rawValue);\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === parsedValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getUser(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@!?|>/g, \"\");\r\n let user = self.message.client.users.cache.get(value);\r\n if (!user) user = self.message.client.users.cache.find(u => u.username === value || u.tag === value);\r\n return user;\r\n },\r\n getUserId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@!?|>/g, \"\");\r\n },\r\n getMember(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@!?|>/g, \"\");\r\n let member = self.message.guild?.members.cache.get(value);\r\n if (!member) member = self.message.guild?.members.cache.find(m => m.user.username === value || m.user.tag === value);\r\n return member;\r\n },\r\n getMemberId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@!?|>/g, \"\");\r\n },\r\n getRole(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@&|>/g, \"\");\r\n let role = self.message.guild?.roles.cache.get(value);\r\n if (!role) role = self.message.guild?.roles.cache.find(r => r.name === value);\r\n return role;\r\n },\r\n getRoleId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@&|>/g, \"\");\r\n },\r\n getMentionable(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@(!|&)?|>/g, \"\");\r\n let user = self.message.client.users.cache.get(value);\r\n if (!user) user = self.message.client.users.cache.find(u => u.username === value || u.tag === value);\r\n if (user) return user;\r\n let member = self.message.guild?.members.cache.get(value);\r\n if (!member) member = self.message.guild?.members.cache.find(m => m.user.username === value || m.user.tag === value);\r\n if (member) return member;\r\n let role = self.message.guild?.roles.cache.get(value);\r\n if (!role) role = self.message.guild?.roles.cache.find(r => r.name === value);\r\n if (role) return role;\r\n return null;\r\n },\r\n getMentionableId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@(!|&)?|>/g, \"\");\r\n },\r\n getMessage() {\r\n return self.message;\r\n },\r\n getAttachment(name: string) {\r\n let d = self.parsedArgs.get(name);\r\n return d?.attachment ?? null;\r\n }\r\n }\r\n }\r\n\r\n init() {\r\n if (this._initialized) return;\r\n this._initialized = true;\r\n this._hoistedOptionsInit();\r\n }\r\n\r\n _hoistedOptionsInit() {\r\n this._hoistedOptions = [...this.parsedArgs.values()].map(arg => {\r\n switch (arg.type) {\r\n case ApplicationCommandOptionType.String: {\r\n return { ...this.options.get(arg.name), value: this.options.getString(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n return { ...this.options.get(arg.name), value: this.options.getInteger(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n return { ...this.options.get(arg.name), value: this.options.getNumber(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n return { ...this.options.get(arg.name), value: this.options.getBoolean(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n return { ...this.options.get(arg.name), value: this.options.getUser(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n return { ...this.options.get(arg.name), value: this.options.getChannel(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n return { ...this.options.get(arg.name), value: this.options.getRole(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n return { ...this.options.get(arg.name), value: this.options.getMentionable(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n return { ...this.options.get(arg.name), value: this.options.getAttachment(arg.name)?.url };\r\n }\r\n case ApplicationCommandOptionType.Subcommand: {\r\n return { ...this.options.get(arg.name), value: this.options.getSubcommand() };\r\n }\r\n case ApplicationCommandOptionType.SubcommandGroup: {\r\n return { ...this.options.get(arg.name), value: this.options.getSubcommandGroup() };\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getRawOptionValue(name: string): any {\r\n return this.parsedArgs.get(name)?.value;\r\n }\r\n\r\n private getClonedDBIOption(name: string): any {\r\n return this.dbiChatInputOptions.find(o => o.name === name);\r\n }\r\n\r\n inGuild() {\r\n return true;\r\n }\r\n\r\n async deferReply(options: any): Promise<any> {\r\n // if (options.ephemeral) throw new Error(\"Ephemeral replies are not supported in message commands.\");\r\n if (this.repliedMessage) throw new Error(\"Already deferred reply.\");\r\n this.repliedMessage = await this.message.reply(options?.content ?? \"Loading...\");\r\n this.deferred = true;\r\n return this.repliedMessage;\r\n }\r\n\r\n async deleteReply() {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n await this.repliedMessage.delete();\r\n this.repliedMessage = undefined;\r\n }\r\n\r\n async followUp(content: string | MessagePayload) {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n if (!this.lastFollowUp) {\r\n this.lastFollowUp = await this.repliedMessage.reply(content);\r\n } else {\r\n this.lastFollowUp = await this.lastFollowUp.reply(content);\r\n }\r\n return this.lastFollowUp;\r\n }\r\n\r\n async editReply(content: string | MessagePayload) {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n await this.repliedMessage.edit(content);\r\n return this.repliedMessage;\r\n }\r\n\r\n async reply(content: string | MessagePayload): Promise<any> {\r\n if (this.repliedMessage) throw new Error(\"Already deferred reply.\");\r\n this.repliedMessage = await this.message.reply(content);\r\n return this.repliedMessage;\r\n }\r\n\r\n async awaitModalSubmit() {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n\r\n async fetchReply() {\r\n return this.repliedMessage?.id && await this.message.channel.messages.fetch(this.repliedMessage.id);\r\n };\r\n\r\n isAnySelectMenu() { return false; }\r\n isAutocomplete() { return false; }\r\n isButton() { return false; }\r\n isChannelSelectMenu() { return false; }\r\n isChatInputCommand() { return true; }\r\n isCommand() { return true; }\r\n isContextMenuCommand() { return false; }\r\n isMentionableSelectMenu() { return false; }\r\n isMessageComponent() { return false; }\r\n isMessageContextMenuCommand() { return false; }\r\n isModalSubmit() { return false; }\r\n isRepliable() { return true; }\r\n isRoleSelectMenu() { return false; }\r\n isStringSelectMenu() { return false; }\r\n isUserContextMenuCommand() { return false; }\r\n isUserSelectMenu() { return false; }\r\n isSelectMenu() { return false; }\r\n}\r\n\r\ninterface FakeMessageInteractionArgument {\r\n type: ApplicationCommandOptionType,\r\n value: any,\r\n attachment?: Attachment,\r\n name: string\r\n}"]}
|
|
1
|
+
{"version":3,"file":"FakeMessageInteraction.js","sourceRoot":"","sources":["../../../src/types/other/FakeMessageInteraction.ts"],"names":[],"mappings":"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","sourcesContent":["import { Message, MessagePayload, ApplicationCommandType, ChatInputCommandInteraction, Locale, APIInteractionGuildMember, GuildMember, PermissionsBitField, CacheType, CommandInteractionOptionResolver, CommandOptionDataTypeResolvable, ApplicationCommandOptionType, User, Attachment } from 'discord.js';\r\nimport { TDBIInteractions } from '../Interaction';\r\nimport { plsParseArgs } from \"plsargs\";\r\nimport { DBI } from '../../DBI';\r\nimport { NamespaceEnums } from \"../../../generated/namespaceData\";\r\nimport { ChannelType } from \"discord-api-types/v10\";\r\n\r\nexport class FakeMessageInteraction /* implements ChatInputCommandInteraction */ {\r\n channelId: string;\r\n commandName: string;\r\n appPermissions: any;\r\n applicationId: string;\r\n channel: any;\r\n command: any;\r\n commandGuildId: string;\r\n commandId: any;\r\n commandType: ApplicationCommandType.ChatInput;\r\n // awaitModalSubmit: (...arr: any[]) => any;\r\n // fetchReply: () => Promise<any>;\r\n deferred: boolean = false;\r\n client: any;\r\n createdAt: Date;\r\n ephemeral: boolean = false;\r\n createdTimestamp: number;\r\n guild: any;\r\n guildId: string;\r\n guildLocale: Locale;\r\n id: string;\r\n user: User;\r\n private repliedMessage: Message | undefined;\r\n private lastFollowUp: Message | undefined;\r\n member: GuildMember | APIInteractionGuildMember;\r\n memberPermissions: Readonly<PermissionsBitField>;\r\n parsedArgs = new Map<string, FakeMessageInteractionArgument>();\r\n usedCommandName: string;\r\n fullCommandName: string;\r\n options: any;\r\n dbiChatInput: TDBIInteractions<string | number>;\r\n dbiChatInputOptions: any[];\r\n fake: boolean = true;\r\n _hoistedOptions: any;\r\n _initialized: boolean = false;\r\n\r\n constructor(private dbi: DBI<NamespaceEnums>, private message: Message, chatInput: TDBIInteractions<string | number>, public locale: string, commandName: string, private usedPrefix: string) {\r\n const self = this;\r\n\r\n this.channelId = message.channel.id;\r\n this.commandName = chatInput.name.split(\" \").at(0);\r\n this.appPermissions = message.guild?.members.me.permissionsIn(message.channel as any) ?? new PermissionsBitField(8n);\r\n this.applicationId = message.client.user.id;\r\n this.channel = message.channel as any;\r\n this.commandGuildId = message.guild.id;\r\n this.commandType = ApplicationCommandType.ChatInput;\r\n\r\n this.client = message.client;\r\n this.createdAt = message.createdAt;\r\n this.createdTimestamp = message.createdTimestamp;\r\n this.guild = message.guild;\r\n this.guildId = message.guild?.id;\r\n this.guildLocale = message.guild?.preferredLocale;\r\n this.id = message.guild?.commands.cache.find((cmd) => cmd.name === this.commandName)?.id ?? message.client.application.commands.cache.find((cmd) => cmd.name === this.commandName)?.id ?? \"-1\";\r\n this.locale = message.guild?.preferredLocale;\r\n this.member = message.member;\r\n this.memberPermissions = message.member?.permissions;\r\n this.user = message.author;\r\n\r\n this.usedCommandName = commandName;\r\n this.fullCommandName = chatInput.name;\r\n this.dbiChatInput = chatInput;\r\n this.dbiChatInputOptions = chatInput.options ? chatInput.options.map(i => ({ ...i })) : [];\r\n\r\n {\r\n const argContent = message.content.slice(usedPrefix.length + commandName.length).replace(/ +/, \" \").trim();\r\n const args = plsParseArgs(argContent);\r\n\r\n const options = chatInput.options ?? [];\r\n const atchs = [...message.attachments.values()];\r\n for (let i = 0, attachmentIndex = 0, namedValueSize = 0; i < options.length; i++) {\r\n const option = options[i];\r\n if (!option) break;\r\n if (option.type === ApplicationCommandOptionType.Attachment) {\r\n this.parsedArgs.set(option.name, {\r\n name: option.name,\r\n type: option.type,\r\n value: atchs.at(attachmentIndex)?.url,\r\n attachment: atchs.at(attachmentIndex++)\r\n })\r\n continue;\r\n }\r\n const arg = option.messageCommands?.rest ? args._.slice(i).join(\" \") : (args.get(option.name) ?? args.get(i - attachmentIndex - namedValueSize));\r\n if (args.get(option.name)) namedValueSize++;\r\n this.parsedArgs.set(option.name, {\r\n name: option.name,\r\n type: option.type,\r\n value: arg\r\n });\r\n }\r\n }\r\n\r\n this.options = {\r\n get(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return {\r\n value: rawValue,\r\n get boolean() { return self.options.getBoolean(name); },\r\n get channel() { return self.options.getChannel(name); },\r\n get string() { return self.options.getString(name); },\r\n get integer() { return self.options.getInteger(name); },\r\n get number() { return self.options.getNumber(name); },\r\n get user() { return self.options.getUser(name); },\r\n get member() { return self.options.getMember(name); },\r\n get role() { return self.options.getRole(name); },\r\n get mentionable() { return self.options.getMentionable(name); },\r\n get attachment() { return self.options.getAttachment(name); }\r\n };\r\n },\r\n get _hoistedOptions() {\r\n return this._hoistedOptions;\r\n },\r\n getSubcommand() {\r\n let splitted = self.fullCommandName.split(\" \");\r\n if (splitted.length === 1) return null;\r\n return splitted.at(-1);\r\n },\r\n getSubcommandGroup() {\r\n let splitted = self.fullCommandName.split(\" \");\r\n if (splitted.length === 3) return splitted[1];\r\n return null;\r\n },\r\n getBoolean(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return !!self.dbi.config.messageCommands.typeAliases.booleans[rawValue.toLowerCase()];\r\n },\r\n getChannel(name: string, _: any, channelType?: ChannelType) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<#|>/g, \"\");\r\n let channel = self.message.client.channels.cache.get(value);\r\n if (!channel) channel = self.message.client.channels.cache.find(c => {\r\n if (self.guildId && (c as any).guildId && (c as any).guildId !== self.guildId) return false;\r\n return (c as any).name === value;\r\n });\r\n if (channelType && channel?.type !== channelType) return null;\r\n return channel;\r\n },\r\n getString(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = `${self.getRawOptionValue(name)}`;\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === rawValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getInteger(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = self.getRawOptionValue(name);\r\n let parsedValue = parseInt(rawValue);\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === parsedValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getNumber(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = self.getRawOptionValue(name);\r\n let parsedValue = parseFloat(rawValue);\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === parsedValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getUser(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@!?|>/g, \"\");\r\n let user = self.message.client.users.cache.get(value);\r\n if (!user) user = self.message.client.users.cache.find(u => u.username === value || u.tag === value);\r\n return user;\r\n },\r\n getUserId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@!?|>/g, \"\");\r\n },\r\n getMember(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@!?|>/g, \"\");\r\n let member = self.message.guild?.members.cache.get(value);\r\n if (!member) member = self.message.guild?.members.cache.find(m => m.user.username === value || m.user.tag === value);\r\n return member;\r\n },\r\n getMemberId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@!?|>/g, \"\");\r\n },\r\n getRole(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@&|>/g, \"\");\r\n let role = self.message.guild?.roles.cache.get(value);\r\n if (!role) role = self.message.guild?.roles.cache.find(r => r.name === value);\r\n return role;\r\n },\r\n getRoleId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@&|>/g, \"\");\r\n },\r\n getMentionable(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@(!|&)?|>/g, \"\");\r\n let user = self.message.client.users.cache.get(value);\r\n if (!user) user = self.message.client.users.cache.find(u => u.username === value || u.tag === value);\r\n if (user) return user;\r\n let member = self.message.guild?.members.cache.get(value);\r\n if (!member) member = self.message.guild?.members.cache.find(m => m.user.username === value || m.user.tag === value);\r\n if (member) return member;\r\n let role = self.message.guild?.roles.cache.get(value);\r\n if (!role) role = self.message.guild?.roles.cache.find(r => r.name === value);\r\n if (role) return role;\r\n return null;\r\n },\r\n getMentionableId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@(!|&)?|>/g, \"\");\r\n },\r\n getMessage() {\r\n return self.message;\r\n },\r\n getAttachment(name: string) {\r\n let d = self.parsedArgs.get(name);\r\n return d?.attachment ?? null;\r\n }\r\n }\r\n }\r\n\r\n init() {\r\n if (this._initialized) return;\r\n this._initialized = true;\r\n this._hoistedOptionsInit();\r\n }\r\n\r\n _hoistedOptionsInit() {\r\n this._hoistedOptions = [...this.parsedArgs.values()].map(arg => {\r\n switch (arg.type) {\r\n case ApplicationCommandOptionType.String: {\r\n return { ...this.options.get(arg.name), value: this.options.getString(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n return { ...this.options.get(arg.name), value: this.options.getInteger(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n return { ...this.options.get(arg.name), value: this.options.getNumber(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n return { ...this.options.get(arg.name), value: this.options.getBoolean(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n return { ...this.options.get(arg.name), value: this.options.getUser(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n return { ...this.options.get(arg.name), value: this.options.getChannel(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n return { ...this.options.get(arg.name), value: this.options.getRole(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n return { ...this.options.get(arg.name), value: this.options.getMentionable(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n return { ...this.options.get(arg.name), value: this.options.getAttachment(arg.name)?.url };\r\n }\r\n case ApplicationCommandOptionType.Subcommand: {\r\n return { ...this.options.get(arg.name), value: this.options.getSubcommand() };\r\n }\r\n case ApplicationCommandOptionType.SubcommandGroup: {\r\n return { ...this.options.get(arg.name), value: this.options.getSubcommandGroup() };\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getRawOptionValue(name: string): any {\r\n return this.parsedArgs.get(name)?.value;\r\n }\r\n\r\n private getClonedDBIOption(name: string): any {\r\n return this.dbiChatInputOptions.find(o => o.name === name);\r\n }\r\n\r\n inGuild() {\r\n return true;\r\n }\r\n\r\n async deferReply(options: any): Promise<any> {\r\n // if (options.ephemeral) throw new Error(\"Ephemeral replies are not supported in message commands.\");\r\n if (this.repliedMessage) throw new Error(\"Already deferred reply.\");\r\n this.repliedMessage = await this.message.reply(options?.content ?? \"Loading...\");\r\n this.deferred = true;\r\n return this.repliedMessage;\r\n }\r\n\r\n async deleteReply() {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n await this.repliedMessage.delete();\r\n this.repliedMessage = undefined;\r\n }\r\n\r\n async followUp(content: string | MessagePayload) {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n if (!this.lastFollowUp) {\r\n this.lastFollowUp = await this.repliedMessage.reply(content);\r\n } else {\r\n this.lastFollowUp = await this.lastFollowUp.reply(content);\r\n }\r\n return this.lastFollowUp;\r\n }\r\n\r\n async editReply(content: string | MessagePayload) {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n await this.repliedMessage.edit(content);\r\n return this.repliedMessage;\r\n }\r\n\r\n async reply(content: string | MessagePayload): Promise<any> {\r\n if (this.repliedMessage) throw new Error(\"Already deferred reply.\");\r\n this.repliedMessage = await this.message.reply(content);\r\n return this.repliedMessage;\r\n }\r\n\r\n async awaitModalSubmit() {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n\r\n async fetchReply() {\r\n return this.repliedMessage?.id && await this.message.channel.messages.fetch(this.repliedMessage.id);\r\n };\r\n\r\n isAnySelectMenu() { return false; }\r\n isAutocomplete() { return false; }\r\n isButton() { return false; }\r\n isChannelSelectMenu() { return false; }\r\n isChatInputCommand() { return true; }\r\n isCommand() { return true; }\r\n isContextMenuCommand() { return false; }\r\n isMentionableSelectMenu() { return false; }\r\n isMessageComponent() { return false; }\r\n isMessageContextMenuCommand() { return false; }\r\n isModalSubmit() { return false; }\r\n isRepliable() { return true; }\r\n isRoleSelectMenu() { return false; }\r\n isStringSelectMenu() { return false; }\r\n isUserContextMenuCommand() { return false; }\r\n isUserSelectMenu() { return false; }\r\n isSelectMenu() { return false; }\r\n}\r\n\r\ninterface FakeMessageInteractionArgument {\r\n type: ApplicationCommandOptionType,\r\n value: any,\r\n attachment?: Attachment,\r\n name: string\r\n}"]}
|
package/package.json
CHANGED
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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",
|
|
70
|
+
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
70
71
|
});
|
|
71
72
|
} catch (error) {
|
|
72
|
-
dbi.events.trigger("eventError",
|
|
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",
|
|
90
|
+
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
88
91
|
});
|
|
89
92
|
} catch (error) {
|
|
90
|
-
await dbi.events.trigger("eventError",
|
|
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
|
}
|
|
@@ -19,7 +19,7 @@ export class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
|
|
|
19
19
|
constructor(dbi: DBI<TNamespace>) {
|
|
20
20
|
this.dbi = dbi;
|
|
21
21
|
}
|
|
22
|
-
stringAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxLength & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<string>[]> | TDBIValueName<string>[] }) {
|
|
22
|
+
stringAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxLength & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<string>[]> | TDBIValueName<string>[], messageCommands?: { rest?: boolean } }) {
|
|
23
23
|
return {
|
|
24
24
|
type: Discord.ApplicationCommandOptionType.String,
|
|
25
25
|
name: cfg.name,
|
|
@@ -33,7 +33,7 @@ export class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
|
|
|
33
33
|
required: cfg.required
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
-
stringChoices(cfg: TDBIBaseOption & TDBIMinMaxLength & { choices: TDBIValueName<string>[] }) {
|
|
36
|
+
stringChoices(cfg: TDBIBaseOption & TDBIMinMaxLength & { choices: TDBIValueName<string>[], messageCommands?: { rest?: boolean } }) {
|
|
37
37
|
return {
|
|
38
38
|
type: Discord.ApplicationCommandOptionType.String,
|
|
39
39
|
name: cfg.name,
|
|
@@ -47,7 +47,7 @@ export class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
|
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
string(cfg: TDBIBaseOption & TDBIMinMaxLength) {
|
|
50
|
+
string(cfg: TDBIBaseOption & TDBIMinMaxLength & { messageCommands?: { rest?: boolean } }) {
|
|
51
51
|
return {
|
|
52
52
|
type: Discord.ApplicationCommandOptionType.String,
|
|
53
53
|
name: cfg.name,
|
|
@@ -56,7 +56,8 @@ export class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
|
|
|
56
56
|
max_length: cfg.maxLength,
|
|
57
57
|
minLength: cfg.minLength,
|
|
58
58
|
min_length: cfg.minLength,
|
|
59
|
-
required: cfg.required
|
|
59
|
+
required: cfg.required,
|
|
60
|
+
messageCommands: cfg.messageCommands
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
|
|
@@ -87,7 +87,7 @@ export class FakeMessageInteraction /* implements ChatInputCommandInteraction */
|
|
|
87
87
|
})
|
|
88
88
|
continue;
|
|
89
89
|
}
|
|
90
|
-
const arg = args.get(option.name) ?? args.get(i - attachmentIndex - namedValueSize);
|
|
90
|
+
const arg = option.messageCommands?.rest ? args._.slice(i).join(" ") : (args.get(option.name) ?? args.get(i - attachmentIndex - namedValueSize));
|
|
91
91
|
if (args.get(option.name)) namedValueSize++;
|
|
92
92
|
this.parsedArgs.set(option.name, {
|
|
93
93
|
name: option.name,
|