@mostfeatured/dbi 0.0.14 → 0.0.15

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.
@@ -44,11 +44,11 @@ function hookInteractionListeners(dbi) {
44
44
  };
45
45
  let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? (0, customId_1.parseCustomId)(dbi, inter.customId).data : undefined;
46
46
  let rateLimitKeyMap = {
47
- "User": `${inter.user.id}`,
48
- "Channel": `${inter.channelId || "Channel"}`,
49
- "Guild": `${inter.guildId || "Guild"}`,
50
- "Member": `${inter.user.id}_${inter.guildId || "Guild"}`,
51
- "Message": `${inter?.message?.id}`
47
+ "User": `${dbiInter.name}_${inter.user.id}`,
48
+ "Channel": `${dbiInter.name}_${inter.channelId || "Channel"}`,
49
+ "Guild": `${dbiInter.name}_${inter.guildId || "Guild"}`,
50
+ "Member": `${dbiInter.name}_${inter.user.id}_${inter.guildId || "Guild"}`,
51
+ "Message": `${dbiInter.name}_${inter?.message?.id}`
52
52
  };
53
53
  for (const type in rateLimitKeyMap) {
54
54
  // @ts-ignore
@@ -1 +1 @@
1
- {"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord from \"discord.js\";\r\nimport { parseCustomId } from \"../utils/customId\";\r\n\r\nexport function hookInteractionListeners(dbi: DBI): () => any {\r\n async function handle(inter: Discord.Interaction<Discord.CacheType>) {\r\n\r\n const dbiInter =\r\n dbi.data.interactions.find(i => {\r\n let isUsesCustomId = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit());\r\n let parsedId = isUsesCustomId ? parseCustomId(dbi, (inter as any).customId) : null;\r\n return (\r\n (\r\n i.type == \"ChatInput\"\r\n && (inter.isChatInputCommand() || inter.isAutocomplete())\r\n && i.name == [inter.commandName, inter.options.getSubcommandGroup(false), inter.options.getSubcommand(false)].filter(i => !!i).join(\" \")\r\n )\r\n ||\r\n (\r\n (i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\")\r\n && (inter.isMessageContextMenuCommand() || inter.isUserContextMenuCommand())\r\n && inter.commandName == i.name\r\n )\r\n ||\r\n (\r\n (i.type == \"Button\" || i.type == \"SelectMenu\" || i.type == \"Modal\")\r\n && isUsesCustomId\r\n && parsedId?.name == i.name\r\n )\r\n )\r\n });\r\n \r\n if (!dbiInter) return;\r\n \r\n if (inter.isAutocomplete()) {\r\n let focussed = inter.options.getFocused(true);\r\n let option = (dbiInter.options as any[]).find(i => i.name == focussed.name);\r\n if (option?.onComplete) {\r\n let response = await option.onComplete({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbi\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = dbi.data.locales.has(userLocaleName) ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);\r\n\r\n let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split(\"-\")[0] : 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 = {\r\n user: userLocale,\r\n guild: guildLocale\r\n };\r\n\r\n let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? parseCustomId(dbi, inter.customId).data : undefined;\r\n\r\n let rateLimitKeyMap = {\r\n \"User\": `${inter.user.id}`,\r\n \"Channel\": `${inter.channelId || \"Channel\"}`,\r\n \"Guild\": `${inter.guildId || \"Guild\"}`,\r\n \"Member\": `${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n \"Message\": `${(inter as any)?.message?.id}`\r\n }\r\n\r\n for (const type in rateLimitKeyMap) {\r\n // @ts-ignore\r\n let key = `RateLimit[\"${rateLimitKeyMap[type]}\"]`;\r\n let val = await dbi.config.store.get(key);\r\n if (val && Date.now() > val.at + val.duration) {\r\n await dbi.config.store.delete(key);\r\n val = null;\r\n }\r\n if (val) {\r\n dbi.events.trigger(\"interactionRateLimit\", {\r\n dbi,\r\n interaction: inter,\r\n locale,\r\n data,\r\n rateLimit: {\r\n type: key,\r\n ...val\r\n }\r\n })\r\n return;\r\n }\r\n }\r\n\r\n async function setRateLimit(type: string, duration: number) {\r\n // @ts-ignore\r\n await dbi.config.store.set(`RateLimit[\"${rateLimitKeyMap[type]}\"]`, { at: Date.now(), duration });\r\n }\r\n\r\n let other = {};\r\n\r\n if (!(await dbi.events.trigger(\"beforeInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other }))) return;\r\n\r\n await dbiInter.onExecute({\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n locale,\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n other\r\n });\r\n \r\n dbi.events.trigger(\"afterInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other });\r\n }\r\n\r\n dbi.client.on(\"interactionCreate\", handle);\r\n\r\n return () => { \r\n dbi.client.off(\"interactionCreate\", handle);\r\n };\r\n}"]}
1
+ {"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord from \"discord.js\";\r\nimport { parseCustomId } from \"../utils/customId\";\r\n\r\nexport function hookInteractionListeners(dbi: DBI): () => any {\r\n async function handle(inter: Discord.Interaction<\"cached\">) {\r\n\r\n const dbiInter =\r\n dbi.data.interactions.find(i => {\r\n let isUsesCustomId = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit());\r\n let parsedId = isUsesCustomId ? parseCustomId(dbi, (inter as any).customId) : null;\r\n return (\r\n (\r\n i.type == \"ChatInput\"\r\n && (inter.isChatInputCommand() || inter.isAutocomplete())\r\n && i.name == [inter.commandName, inter.options.getSubcommandGroup(false), inter.options.getSubcommand(false)].filter(i => !!i).join(\" \")\r\n )\r\n ||\r\n (\r\n (i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\")\r\n && (inter.isMessageContextMenuCommand() || inter.isUserContextMenuCommand())\r\n && inter.commandName == i.name\r\n )\r\n ||\r\n (\r\n (i.type == \"Button\" || i.type == \"SelectMenu\" || i.type == \"Modal\")\r\n && isUsesCustomId\r\n && parsedId?.name == i.name\r\n )\r\n )\r\n });\r\n \r\n if (!dbiInter) return;\r\n \r\n if (inter.isAutocomplete()) {\r\n let focussed = inter.options.getFocused(true);\r\n let option = (dbiInter.options as any[]).find(i => i.name == focussed.name);\r\n if (option?.onComplete) {\r\n let response = await option.onComplete({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbi\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = dbi.data.locales.has(userLocaleName) ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);\r\n\r\n let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split(\"-\")[0] : 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 = {\r\n user: userLocale,\r\n guild: guildLocale\r\n };\r\n\r\n let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? parseCustomId(dbi, inter.customId).data : undefined;\r\n\r\n let rateLimitKeyMap = {\r\n \"User\": `${dbiInter.name}_${inter.user.id}`,\r\n \"Channel\": `${dbiInter.name}_${inter.channelId || \"Channel\"}`,\r\n \"Guild\": `${dbiInter.name}_${inter.guildId || \"Guild\"}`,\r\n \"Member\": `${dbiInter.name}_${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n \"Message\": `${dbiInter.name}_${(inter as any)?.message?.id}`\r\n }\r\n\r\n for (const type in rateLimitKeyMap) {\r\n // @ts-ignore\r\n let key = `RateLimit[\"${rateLimitKeyMap[type]}\"]`;\r\n let val = await dbi.config.store.get(key);\r\n if (val && Date.now() > val.at + val.duration) {\r\n await dbi.config.store.delete(key);\r\n val = null;\r\n }\r\n if (val) {\r\n dbi.events.trigger(\"interactionRateLimit\", {\r\n dbi,\r\n interaction: inter,\r\n locale,\r\n data,\r\n rateLimit: {\r\n type: key,\r\n ...val\r\n }\r\n })\r\n return;\r\n }\r\n }\r\n\r\n async function setRateLimit(type: string, duration: number) {\r\n // @ts-ignore\r\n await dbi.config.store.set(`RateLimit[\"${rateLimitKeyMap[type]}\"]`, { at: Date.now(), duration });\r\n }\r\n\r\n let other = {};\r\n\r\n if (!(await dbi.events.trigger(\"beforeInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other }))) return;\r\n\r\n await dbiInter.onExecute({\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n locale,\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n other\r\n });\r\n \r\n dbi.events.trigger(\"afterInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other });\r\n }\r\n\r\n dbi.client.on(\"interactionCreate\", handle);\r\n\r\n return () => { \r\n dbi.client.off(\"interactionCreate\", handle);\r\n };\r\n}"]}
@@ -2,7 +2,7 @@ import Discord from "discord.js";
2
2
  import { DBI } from "../DBI";
3
3
  import { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from "./Interaction";
4
4
  export interface IDBIButtonExecuteCtx extends IDBIBaseExecuteCtx {
5
- interaction: Discord.ButtonInteraction<Discord.CacheType>;
5
+ interaction: Discord.ButtonInteraction<"cached">;
6
6
  data: TDBIReferencedData[];
7
7
  }
8
8
  export declare type TDBIButtonOmitted = Omit<DBIButton, "type" | "description" | "dbi" | "toJSON">;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/types/Button.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3F,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAE3F,qBAAa,SAAU,SAAQ,kBAAkB;gBACnC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB;IAOrC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAEjE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB;CAOjF"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/types/Button.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3F,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAE3F,qBAAa,SAAU,SAAQ,kBAAkB;gBACnC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB;IAOrC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;IAE/D,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAEjE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB;CAOjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/types/Button.ts"],"names":[],"mappings":";;;;AAAA,oEAAiC;AAEjC,+CAA2F;AAC3F,gDAAoD;AASpD,MAAa,SAAU,SAAQ,gCAAkB;IAC/C,YAAY,GAAQ,EAAE,IAAuB;QAC3C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,IAAY;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAIQ,SAAS,CAAC,GAAyB,IAAwB,CAAC;IAAA,CAAC;IAEtE,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,IAAI,CAAC,OAAO;YACf,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1D,IAAI,EAAE,oBAAO,CAAC,aAAa,CAAC,MAAM;SAC5B,CAAC;IACX,CAAC;IAAA,CAAC;CACH;AAnBD,8BAmBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBIButtonExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ButtonInteraction<Discord.CacheType>;\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBIButtonOmitted = Omit<DBIButton, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBIButton extends DBIBaseInteraction {\r\n constructor(dbi: DBI, args: TDBIButtonOmitted) {\r\n super(dbi, {\r\n ...(args as any),\r\n type: \"Button\",\r\n });\r\n }\r\n\r\n declare options: Omit<Discord.ButtonComponentData, \"customId\" | \"type\">;\r\n\r\n override onExecute(ctx: IDBIButtonExecuteCtx): Promise<any> | any { };\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.ButtonComponentData {\r\n return {\r\n ...this.options,\r\n customId: customIdBuilder(this.dbi, this.name, customData),\r\n type: Discord.ComponentType.Button\r\n } as any;\r\n };\r\n}"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/types/Button.ts"],"names":[],"mappings":";;;;AAAA,oEAAiC;AAEjC,+CAA2F;AAC3F,gDAAoD;AASpD,MAAa,SAAU,SAAQ,gCAAkB;IAC/C,YAAY,GAAQ,EAAE,IAAuB;QAC3C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,IAAY;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAIQ,SAAS,CAAC,GAAyB,IAAwB,CAAC;IAAA,CAAC;IAEtE,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,IAAI,CAAC,OAAO;YACf,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1D,IAAI,EAAE,oBAAO,CAAC,aAAa,CAAC,MAAM;SAC5B,CAAC;IACX,CAAC;IAAA,CAAC;CACH;AAnBD,8BAmBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBIButtonExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ButtonInteraction<\"cached\">;\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBIButtonOmitted = Omit<DBIButton, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBIButton extends DBIBaseInteraction {\r\n constructor(dbi: DBI, args: TDBIButtonOmitted) {\r\n super(dbi, {\r\n ...(args as any),\r\n type: \"Button\",\r\n });\r\n }\r\n\r\n declare options: Omit<Discord.ButtonComponentData, \"customId\" | \"type\">;\r\n\r\n override onExecute(ctx: IDBIButtonExecuteCtx): Promise<any> | any { };\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.ButtonComponentData {\r\n return {\r\n ...this.options,\r\n customId: customIdBuilder(this.dbi, this.name, customData),\r\n type: Discord.ComponentType.Button\r\n } as any;\r\n };\r\n}"]}
@@ -2,7 +2,7 @@ import Discord from "discord.js";
2
2
  import { DBI } from "../../DBI";
3
3
  import { DBIBaseInteraction, IDBIBaseExecuteCtx } from "../Interaction";
4
4
  export interface IDBIChatInputExecuteCtx extends IDBIBaseExecuteCtx {
5
- interaction: Discord.ChatInputCommandInteraction<Discord.CacheType>;
5
+ interaction: Discord.ChatInputCommandInteraction<"cached">;
6
6
  }
7
7
  export declare type TDBIChatInputOmitted = Omit<DBIChatInput, "type" | "dbi">;
8
8
  export declare class DBIChatInput extends DBIBaseInteraction {
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/types/ChatInput/ChatInput.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,WAAW,EAAE,OAAO,CAAC,2BAA2B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CACrE;AAED,oBAAY,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;AAEtE,qBAAa,YAAa,SAAQ,kBAAkB;gBACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,oBAAoB;IAW/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC/C,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,CAAC,GAAG,EAAE,uBAAuB;CAChD"}
1
+ {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/types/ChatInput/ChatInput.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,WAAW,EAAE,OAAO,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;CAC5D;AAED,oBAAY,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;AAEtE,qBAAa,YAAa,SAAQ,kBAAkB;gBACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,oBAAoB;IAW/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC/C,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,CAAC,GAAG,EAAE,uBAAuB;CAChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../../src/types/ChatInput/ChatInput.ts"],"names":[],"mappings":";;;AAEA,gDAAwE;AAQxE,MAAa,YAAa,SAAQ,gCAAkB;IAClD,YAAY,GAAQ,EAAE,GAAyB;QAC7C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SACvD,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/E,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/G,CAAC;IACD,cAAc,CAAW;IACzB,wBAAwB,CAA+B;IAE9C,SAAS,CAAC,GAA4B,IAAG,CAAC;CACpD;AAhBD,oCAgBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx } from \"../Interaction\";\r\n\r\nexport interface IDBIChatInputExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ChatInputCommandInteraction<Discord.CacheType>;\r\n}\r\n\r\nexport type TDBIChatInputOmitted = Omit<DBIChatInput, \"type\" | \"dbi\">;\r\n\r\nexport class DBIChatInput extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIChatInputOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"ChatInput\",\r\n name: cfg.name.toLowerCase(),\r\n options: Array.isArray(cfg.options) ? cfg.options : []\r\n });\r\n\r\n this.directMessages = cfg.directMessages ?? dbi.config.defaults.directMessages;\r\n this.defaultMemberPermissions = cfg.defaultMemberPermissions ?? dbi.config.defaults.defaultMemberPermissions;\r\n }\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n declare options?: any[];\r\n override onExecute(ctx: IDBIChatInputExecuteCtx) {}\r\n}"]}
1
+ {"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../../src/types/ChatInput/ChatInput.ts"],"names":[],"mappings":";;;AAEA,gDAAwE;AAQxE,MAAa,YAAa,SAAQ,gCAAkB;IAClD,YAAY,GAAQ,EAAE,GAAyB;QAC7C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SACvD,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/E,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/G,CAAC;IACD,cAAc,CAAW;IACzB,wBAAwB,CAA+B;IAE9C,SAAS,CAAC,GAA4B,IAAG,CAAC;CACpD;AAhBD,oCAgBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx } from \"../Interaction\";\r\n\r\nexport interface IDBIChatInputExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ChatInputCommandInteraction<\"cached\">;\r\n}\r\n\r\nexport type TDBIChatInputOmitted = Omit<DBIChatInput, \"type\" | \"dbi\">;\r\n\r\nexport class DBIChatInput extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIChatInputOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"ChatInput\",\r\n name: cfg.name.toLowerCase(),\r\n options: Array.isArray(cfg.options) ? cfg.options : []\r\n });\r\n\r\n this.directMessages = cfg.directMessages ?? dbi.config.defaults.directMessages;\r\n this.defaultMemberPermissions = cfg.defaultMemberPermissions ?? dbi.config.defaults.defaultMemberPermissions;\r\n }\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n declare options?: any[];\r\n override onExecute(ctx: IDBIChatInputExecuteCtx) {}\r\n}"]}
@@ -3,7 +3,7 @@ import { DBIBaseInteraction, IDBIBaseExecuteCtx } from "./Interaction";
3
3
  import Discord from "discord.js";
4
4
  export declare type TDBIMessageContextMenuOmitted = Omit<DBIMessageContextMenu, "type" | "description" | "dbi" | "options">;
5
5
  export interface IDBIMessageContextMenuExecuteCtx extends IDBIBaseExecuteCtx {
6
- interaction: Discord.MessageContextMenuCommandInteraction<Discord.CacheType>;
6
+ interaction: Discord.MessageContextMenuCommandInteraction<"cached">;
7
7
  }
8
8
  export declare class DBIMessageContextMenu extends DBIBaseInteraction {
9
9
  constructor(dbi: DBI, cfg: TDBIMessageContextMenuOmitted);
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContextMenu.d.ts","sourceRoot":"","sources":["../../src/types/MessageContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,oBAAY,6BAA6B,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;AAEpH,MAAM,WAAW,gCAAiC,SAAQ,kBAAkB;IAC1E,WAAW,EAAE,OAAO,CAAC,oCAAoC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CAC9E;AAGD,qBAAa,qBAAsB,SAAQ,kBAAkB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,6BAA6B;IAUxD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC9C,SAAS,CAAC,GAAG,EAAE,gCAAgC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;CAC9E"}
1
+ {"version":3,"file":"MessageContextMenu.d.ts","sourceRoot":"","sources":["../../src/types/MessageContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,oBAAY,6BAA6B,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;AAEpH,MAAM,WAAW,gCAAiC,SAAQ,kBAAkB;IAC1E,WAAW,EAAE,OAAO,CAAC,oCAAoC,CAAC,QAAQ,CAAC,CAAC;CACrE;AAGD,qBAAa,qBAAsB,SAAQ,kBAAkB;gBAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,6BAA6B;IAUxD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC9C,SAAS,CAAC,GAAG,EAAE,gCAAgC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;CAC9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContextMenu.js","sourceRoot":"","sources":["../../src/types/MessageContextMenu.ts"],"names":[],"mappings":";;;AACA,+CAAuE;AAUvE,MAAa,qBAAsB,SAAQ,gCAAkB;IAC3D,YAAY,GAAQ,EAAE,GAAkC;QACtD,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/E,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/G,CAAC;IAED,cAAc,CAAW;IACzB,wBAAwB,CAA+B;IAC9C,SAAS,CAAC,GAAqC,IAAuB,CAAC;CACjF;AAdD,sDAcC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx } from \"./Interaction\";\r\nimport Discord from \"discord.js\";\r\n\r\nexport type TDBIMessageContextMenuOmitted = Omit<DBIMessageContextMenu, \"type\" | \"description\" | \"dbi\" | \"options\">;\r\n\r\nexport interface IDBIMessageContextMenuExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.MessageContextMenuCommandInteraction<Discord.CacheType>;\r\n}\r\n\r\n\r\nexport class DBIMessageContextMenu extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIMessageContextMenuOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"MessageContextMenu\"\r\n });\r\n\r\n this.directMessages = cfg.directMessages ?? dbi.config.defaults.directMessages;\r\n this.defaultMemberPermissions = cfg.defaultMemberPermissions ?? dbi.config.defaults.defaultMemberPermissions;\r\n }\r\n\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n override onExecute(ctx: IDBIMessageContextMenuExecuteCtx): Promise<any> | any {}\r\n}"]}
1
+ {"version":3,"file":"MessageContextMenu.js","sourceRoot":"","sources":["../../src/types/MessageContextMenu.ts"],"names":[],"mappings":";;;AACA,+CAAuE;AAUvE,MAAa,qBAAsB,SAAQ,gCAAkB;IAC3D,YAAY,GAAQ,EAAE,GAAkC;QACtD,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/E,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/G,CAAC;IAED,cAAc,CAAW;IACzB,wBAAwB,CAA+B;IAC9C,SAAS,CAAC,GAAqC,IAAuB,CAAC;CACjF;AAdD,sDAcC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx } from \"./Interaction\";\r\nimport Discord from \"discord.js\";\r\n\r\nexport type TDBIMessageContextMenuOmitted = Omit<DBIMessageContextMenu, \"type\" | \"description\" | \"dbi\" | \"options\">;\r\n\r\nexport interface IDBIMessageContextMenuExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.MessageContextMenuCommandInteraction<\"cached\">;\r\n}\r\n\r\n\r\nexport class DBIMessageContextMenu extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIMessageContextMenuOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"MessageContextMenu\"\r\n });\r\n\r\n this.directMessages = cfg.directMessages ?? dbi.config.defaults.directMessages;\r\n this.defaultMemberPermissions = cfg.defaultMemberPermissions ?? dbi.config.defaults.defaultMemberPermissions;\r\n }\r\n\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n override onExecute(ctx: IDBIMessageContextMenuExecuteCtx): Promise<any> | any {}\r\n}"]}
@@ -2,7 +2,7 @@ import { DBI } from "../DBI";
2
2
  import { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from "./Interaction";
3
3
  import Discord from "discord.js";
4
4
  export interface IDBIModalExecuteCtx extends IDBIBaseExecuteCtx {
5
- interaction: Discord.ModalSubmitInteraction<Discord.CacheType>;
5
+ interaction: Discord.ModalSubmitInteraction<"cached">;
6
6
  data: TDBIReferencedData[];
7
7
  }
8
8
  export declare type TDBIModalOmitted = Omit<DBIModal, "type" | "description" | "dbi" | "toJSON">;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/types/Modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,OAAO,MAAM,YAAY,CAAC;AAGjC,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/D,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAEzF,qBAAa,QAAS,SAAQ,kBAAkB;gBAClC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB;IAOnC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAErD,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAEhE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,kBAAkB;CAMhF"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/types/Modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,OAAO,MAAM,YAAY,CAAC;AAGjC,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAEtD,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAEzF,qBAAa,QAAS,SAAQ,kBAAkB;gBAClC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB;IAOnC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAErD,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAEhE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,kBAAkB;CAMhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/types/Modal.ts"],"names":[],"mappings":";;;AACA,+CAA2F;AAE3F,gDAAoD;AAUpD,MAAa,QAAS,SAAQ,gCAAkB;IAC9C,YAAY,GAAQ,EAAE,GAAqB;QACzC,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;IACJ,CAAC;IAIQ,SAAS,CAAC,GAAwB,IAAwB,CAAC;IAAA,CAAC;IAErE,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,IAAI,CAAC,OAAO;YACf,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;SACpD,CAAC;IACX,CAAC;IAAA,CAAC;CACH;AAlBD,4BAkBC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport Discord from \"discord.js\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBIModalExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ModalSubmitInteraction<Discord.CacheType>;\r\n\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBIModalOmitted = Omit<DBIModal, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBIModal extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIModalOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"Modal\"\r\n })\r\n }\r\n\r\n declare options: Omit<Discord.ModalComponentData, \"customId\">;\r\n\r\n override onExecute(ctx: IDBIModalExecuteCtx): Promise<any> | any { };\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.ModalComponentData {\r\n return {\r\n ...this.options,\r\n customId: customIdBuilder(this.dbi, this.name, customData)\r\n } as any;\r\n };\r\n}"]}
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/types/Modal.ts"],"names":[],"mappings":";;;AACA,+CAA2F;AAE3F,gDAAoD;AAUpD,MAAa,QAAS,SAAQ,gCAAkB;IAC9C,YAAY,GAAQ,EAAE,GAAqB;QACzC,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;IACJ,CAAC;IAIQ,SAAS,CAAC,GAAwB,IAAwB,CAAC;IAAA,CAAC;IAErE,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,IAAI,CAAC,OAAO;YACf,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;SACpD,CAAC;IACX,CAAC;IAAA,CAAC;CACH;AAlBD,4BAkBC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport Discord from \"discord.js\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBIModalExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ModalSubmitInteraction<\"cached\">;\r\n\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBIModalOmitted = Omit<DBIModal, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBIModal extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIModalOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"Modal\"\r\n })\r\n }\r\n\r\n declare options: Omit<Discord.ModalComponentData, \"customId\">;\r\n\r\n override onExecute(ctx: IDBIModalExecuteCtx): Promise<any> | any { };\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.ModalComponentData {\r\n return {\r\n ...this.options,\r\n customId: customIdBuilder(this.dbi, this.name, customData)\r\n } as any;\r\n };\r\n}"]}
@@ -2,7 +2,7 @@ import Discord from "discord.js";
2
2
  import { DBI } from "../DBI";
3
3
  import { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from "./Interaction";
4
4
  export interface IDBISelectMenuExecuteCtx extends IDBIBaseExecuteCtx {
5
- interaction: Discord.ButtonInteraction<Discord.CacheType>;
5
+ interaction: Discord.ButtonInteraction<"cached">;
6
6
  data: TDBIReferencedData[];
7
7
  }
8
8
  export declare type TDBISelectMenuOmitted = Omit<DBIBaseInteraction, "type" | "description" | "dbi" | "toJSON">;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../src/types/SelectMenu.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3F,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAExG,qBAAa,aAAc,SAAQ,kBAAkB;gBACvC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB;IAOzC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAErE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,uBAAuB;CAOrF"}
1
+ {"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../src/types/SelectMenu.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3F,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAExG,qBAAa,aAAc,SAAQ,kBAAkB;gBACvC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB;IAOzC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAErE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,uBAAuB;CAOrF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectMenu.js","sourceRoot":"","sources":["../../src/types/SelectMenu.ts"],"names":[],"mappings":";;;;AAAA,oEAAiC;AAEjC,+CAA2F;AAC3F,gDAAoD;AASpD,MAAa,aAAc,SAAQ,gCAAkB;IACnD,YAAY,GAAQ,EAAE,IAA2B;QAC/C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,IAAY;YAChB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;IACL,CAAC;IAIQ,SAAS,CAAC,GAA6B,IAAwB,CAAC;IAAA,CAAC;IAE1E,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,IAAI,CAAC,OAAO;YACf,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1D,IAAI,EAAE,oBAAO,CAAC,aAAa,CAAC,UAAU;SAChC,CAAA;IACV,CAAC;IAAA,CAAC;CACH;AAnBD,sCAmBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBISelectMenuExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ButtonInteraction<Discord.CacheType>;\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBISelectMenuOmitted = Omit<DBIBaseInteraction, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBISelectMenu extends DBIBaseInteraction {\r\n constructor(dbi: DBI, args: TDBISelectMenuOmitted) {\r\n super(dbi, {\r\n ...(args as any),\r\n type: \"SelectMenu\",\r\n });\r\n }\r\n\r\n declare options: Omit<Discord.SelectMenuComponentData, \"customId\" | \"type\">;\r\n\r\n override onExecute(ctx: IDBISelectMenuExecuteCtx): Promise<any> | any { };\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.SelectMenuComponentData {\r\n return {\r\n ...this.options,\r\n customId: customIdBuilder(this.dbi, this.name, customData),\r\n type: Discord.ComponentType.SelectMenu\r\n } as any\r\n };\r\n}"]}
1
+ {"version":3,"file":"SelectMenu.js","sourceRoot":"","sources":["../../src/types/SelectMenu.ts"],"names":[],"mappings":";;;;AAAA,oEAAiC;AAEjC,+CAA2F;AAC3F,gDAAoD;AASpD,MAAa,aAAc,SAAQ,gCAAkB;IACnD,YAAY,GAAQ,EAAE,IAA2B;QAC/C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,IAAY;YAChB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;IACL,CAAC;IAIQ,SAAS,CAAC,GAA6B,IAAwB,CAAC;IAAA,CAAC;IAE1E,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,IAAI,CAAC,OAAO;YACf,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1D,IAAI,EAAE,oBAAO,CAAC,aAAa,CAAC,UAAU;SAChC,CAAA;IACV,CAAC;IAAA,CAAC;CACH;AAnBD,sCAmBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBISelectMenuExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ButtonInteraction<\"cached\">;\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBISelectMenuOmitted = Omit<DBIBaseInteraction, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBISelectMenu extends DBIBaseInteraction {\r\n constructor(dbi: DBI, args: TDBISelectMenuOmitted) {\r\n super(dbi, {\r\n ...(args as any),\r\n type: \"SelectMenu\",\r\n });\r\n }\r\n\r\n declare options: Omit<Discord.SelectMenuComponentData, \"customId\" | \"type\">;\r\n\r\n override onExecute(ctx: IDBISelectMenuExecuteCtx): Promise<any> | any { };\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.SelectMenuComponentData {\r\n return {\r\n ...this.options,\r\n customId: customIdBuilder(this.dbi, this.name, customData),\r\n type: Discord.ComponentType.SelectMenu\r\n } as any\r\n };\r\n}"]}
@@ -3,7 +3,7 @@ import { DBIBaseInteraction, IDBIBaseExecuteCtx } from "./Interaction";
3
3
  import Discord from "discord.js";
4
4
  export declare type TDBIUserContextMenuOmitted = Omit<DBIUserContextMenu, "type" | "description" | "dbi" | "options">;
5
5
  export interface IDBIUserContextMenuExecuteCtx extends IDBIBaseExecuteCtx {
6
- interaction: Discord.UserContextMenuCommandInteraction<Discord.CacheType>;
6
+ interaction: Discord.UserContextMenuCommandInteraction<"cached">;
7
7
  }
8
8
  export declare class DBIUserContextMenu extends DBIBaseInteraction {
9
9
  constructor(dbi: DBI, cfg: TDBIUserContextMenuOmitted);
@@ -1 +1 @@
1
- {"version":3,"file":"UserContextMenu.d.ts","sourceRoot":"","sources":["../../src/types/UserContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,oBAAY,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;AAE9G,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;IACvE,WAAW,EAAE,OAAO,CAAC,iCAAiC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3E;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB;gBAC5C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,0BAA0B;IASrD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC9C,SAAS,CAAC,GAAG,EAAE,6BAA6B,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;CAC3E"}
1
+ {"version":3,"file":"UserContextMenu.d.ts","sourceRoot":"","sources":["../../src/types/UserContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,oBAAY,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;AAE9G,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;IACvE,WAAW,EAAE,OAAO,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;CAClE;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB;gBAC5C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,0BAA0B;IASrD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC9C,SAAS,CAAC,GAAG,EAAE,6BAA6B,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;CAC3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserContextMenu.js","sourceRoot":"","sources":["../../src/types/UserContextMenu.ts"],"names":[],"mappings":";;;AACA,+CAAuE;AASvE,MAAa,kBAAmB,SAAQ,gCAAkB;IACxD,YAAY,GAAQ,EAAE,GAA+B;QACnD,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/E,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/G,CAAC;IACD,cAAc,CAAW;IACzB,wBAAwB,CAA+B;IAC9C,SAAS,CAAC,GAAkC,IAAuB,CAAC;CAC9E;AAbD,gDAaC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx } from \"./Interaction\";\r\nimport Discord from \"discord.js\";\r\n\r\nexport type TDBIUserContextMenuOmitted = Omit<DBIUserContextMenu, \"type\" | \"description\" | \"dbi\" | \"options\">;\r\n\r\nexport interface IDBIUserContextMenuExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.UserContextMenuCommandInteraction<Discord.CacheType>;\r\n}\r\n\r\nexport class DBIUserContextMenu extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIUserContextMenuOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"UserContextMenu\"\r\n });\r\n\r\n this.directMessages = cfg.directMessages ?? dbi.config.defaults.directMessages;\r\n this.defaultMemberPermissions = cfg.defaultMemberPermissions ?? dbi.config.defaults.defaultMemberPermissions;\r\n }\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n override onExecute(ctx: IDBIUserContextMenuExecuteCtx): Promise<any> | any {}\r\n}"]}
1
+ {"version":3,"file":"UserContextMenu.js","sourceRoot":"","sources":["../../src/types/UserContextMenu.ts"],"names":[],"mappings":";;;AACA,+CAAuE;AASvE,MAAa,kBAAmB,SAAQ,gCAAkB;IACxD,YAAY,GAAQ,EAAE,GAA+B;QACnD,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/E,IAAI,CAAC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC/G,CAAC;IACD,cAAc,CAAW;IACzB,wBAAwB,CAA+B;IAC9C,SAAS,CAAC,GAAkC,IAAuB,CAAC;CAC9E;AAbD,gDAaC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx } from \"./Interaction\";\r\nimport Discord from \"discord.js\";\r\n\r\nexport type TDBIUserContextMenuOmitted = Omit<DBIUserContextMenu, \"type\" | \"description\" | \"dbi\" | \"options\">;\r\n\r\nexport interface IDBIUserContextMenuExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.UserContextMenuCommandInteraction<\"cached\">;\r\n}\r\n\r\nexport class DBIUserContextMenu extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIUserContextMenuOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"UserContextMenu\"\r\n });\r\n\r\n this.directMessages = cfg.directMessages ?? dbi.config.defaults.directMessages;\r\n this.defaultMemberPermissions = cfg.defaultMemberPermissions ?? dbi.config.defaults.defaultMemberPermissions;\r\n }\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n override onExecute(ctx: IDBIUserContextMenuExecuteCtx): Promise<any> | any {}\r\n}"]}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "stuffs": "^0.1.17"
10
10
  },
11
11
  "name": "@mostfeatured/dbi",
12
- "version": "0.0.14",
12
+ "version": "0.0.15",
13
13
  "main": "dist/index.js",
14
14
  "type": "commonjs",
15
15
  "private": false,
package/readme.md ADDED
@@ -0,0 +1,34 @@
1
+ # DiscordBotInfrastructure
2
+
3
+ Büyük ihtimalle internette bulabileceğiniz kullanımı basit ve en kullanışlı altyapı bu olabilir.
4
+
5
+ ## Hemen Kullanımına Geçelim
6
+ Unutmadan söyleyeyim bu altyapı diğer alışık olduğunuz altyapılar gibi kendi halinde bir proje değil, bir NPM modülüdür. Bu yüzden kullanmaya başlamak için bir klasör açıyoruz ve içerisine `npm install @mostfeatured/dbi` komutunu kullanarak altyapıyı indiriyoruz.
7
+
8
+ Önce `3 dosya` ve `1 klasöre` ihitiyacımız var. Bu yapı tamamen sizin keyfinize kalmış bir durumda ancak ben bu şekilde kullanıyorum ve tavsiye ediyorum.
9
+
10
+ Neyse, açacağamız dosyalar ve klasörler şunlar; `dbi.js`, `login.js`, `publish.js` dosyaları ve `src` klasörü.
11
+
12
+ İlk olarak `dbi.js` adındaki dosyamı açıyorum ve içerisine altyapının temellerini atıyorum.
13
+ ![1](https://i.imgur.com/I3NV7MD.png)
14
+
15
+ `createDBI()` fonksiyonu ile altyapıyı başlatıyorum. Fonksiyonun ilk parametresi botunuzun `kodAdı`, ikinci parametresi ise botunuzun konfigürasyonudur.
16
+
17
+
18
+
19
+ İkinci olarak `login.js` dosyamı açıyorum ve içerisine botu açmak için kullanacağım kod gurubunu yazıyorum.
20
+ ![2](https://i.imgur.com/Kn9ELps.png)
21
+
22
+ İçeriye `recursiveImport()` fonksiyonunu alıyorum. Bu fonksiyon ile sonsuz bir şekilde `x` klasöründeki bütün dosyaları `import`/`require` edebiliyoruz, bu sayede altyapı bu dosyalardan haberdar oluyor.
23
+ Ana `dbi.js` dosyamdan altyapıma ulaşıyorum. Ve `async` bir ortam oluşturup ilk önce tüm proje dosylarını altyapıya tanımlıyorum. Tanımlamanın ardından tanımladığım tüm özellikleri altyapıya `load()` fonksiyonunu ile yüklüyorum. Hemen ardından `login()` fonksiyonu ile Discord'a giriş sağlıyorum.
24
+
25
+
26
+ Üçüncü olarak `publish.js` dosyamı açıyorum ve ikinci aşamada yaptığım tüm herşeyi tekrardan yapıyorum.
27
+ ![3](https://i.imgur.com/p2VI6Js.png)
28
+
29
+ Ancak `login()` fonksiyonunu çağırmak yerine, `publish()` fonksiyonunu çağrıyorum bu fonksiyon ile botumun komutlarını istediğim yere tanıtıyorum.
30
+
31
+
32
+ <sub>Devamı gelecek..</sub>
33
+
34
+
@@ -3,7 +3,7 @@ import Discord from "discord.js";
3
3
  import { parseCustomId } from "../utils/customId";
4
4
 
5
5
  export function hookInteractionListeners(dbi: DBI): () => any {
6
- async function handle(inter: Discord.Interaction<Discord.CacheType>) {
6
+ async function handle(inter: Discord.Interaction<"cached">) {
7
7
 
8
8
  const dbiInter =
9
9
  dbi.data.interactions.find(i => {
@@ -60,11 +60,11 @@ export function hookInteractionListeners(dbi: DBI): () => any {
60
60
  let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? parseCustomId(dbi, inter.customId).data : undefined;
61
61
 
62
62
  let rateLimitKeyMap = {
63
- "User": `${inter.user.id}`,
64
- "Channel": `${inter.channelId || "Channel"}`,
65
- "Guild": `${inter.guildId || "Guild"}`,
66
- "Member": `${inter.user.id}_${inter.guildId || "Guild"}`,
67
- "Message": `${(inter as any)?.message?.id}`
63
+ "User": `${dbiInter.name}_${inter.user.id}`,
64
+ "Channel": `${dbiInter.name}_${inter.channelId || "Channel"}`,
65
+ "Guild": `${dbiInter.name}_${inter.guildId || "Guild"}`,
66
+ "Member": `${dbiInter.name}_${inter.user.id}_${inter.guildId || "Guild"}`,
67
+ "Message": `${dbiInter.name}_${(inter as any)?.message?.id}`
68
68
  }
69
69
 
70
70
  for (const type in rateLimitKeyMap) {
@@ -4,7 +4,7 @@ import { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from "./In
4
4
  import { customIdBuilder } from "../utils/customId";
5
5
 
6
6
  export interface IDBIButtonExecuteCtx extends IDBIBaseExecuteCtx {
7
- interaction: Discord.ButtonInteraction<Discord.CacheType>;
7
+ interaction: Discord.ButtonInteraction<"cached">;
8
8
  data: TDBIReferencedData[];
9
9
  }
10
10
 
@@ -3,7 +3,7 @@ import { DBI } from "../../DBI";
3
3
  import { DBIBaseInteraction, IDBIBaseExecuteCtx } from "../Interaction";
4
4
 
5
5
  export interface IDBIChatInputExecuteCtx extends IDBIBaseExecuteCtx {
6
- interaction: Discord.ChatInputCommandInteraction<Discord.CacheType>;
6
+ interaction: Discord.ChatInputCommandInteraction<"cached">;
7
7
  }
8
8
 
9
9
  export type TDBIChatInputOmitted = Omit<DBIChatInput, "type" | "dbi">;
@@ -5,7 +5,7 @@ import Discord from "discord.js";
5
5
  export type TDBIMessageContextMenuOmitted = Omit<DBIMessageContextMenu, "type" | "description" | "dbi" | "options">;
6
6
 
7
7
  export interface IDBIMessageContextMenuExecuteCtx extends IDBIBaseExecuteCtx {
8
- interaction: Discord.MessageContextMenuCommandInteraction<Discord.CacheType>;
8
+ interaction: Discord.MessageContextMenuCommandInteraction<"cached">;
9
9
  }
10
10
 
11
11
 
@@ -4,7 +4,7 @@ import Discord from "discord.js";
4
4
  import { customIdBuilder } from "../utils/customId";
5
5
 
6
6
  export interface IDBIModalExecuteCtx extends IDBIBaseExecuteCtx {
7
- interaction: Discord.ModalSubmitInteraction<Discord.CacheType>;
7
+ interaction: Discord.ModalSubmitInteraction<"cached">;
8
8
 
9
9
  data: TDBIReferencedData[];
10
10
  }
@@ -4,7 +4,7 @@ import { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from "./In
4
4
  import { customIdBuilder } from "../utils/customId";
5
5
 
6
6
  export interface IDBISelectMenuExecuteCtx extends IDBIBaseExecuteCtx {
7
- interaction: Discord.ButtonInteraction<Discord.CacheType>;
7
+ interaction: Discord.ButtonInteraction<"cached">;
8
8
  data: TDBIReferencedData[];
9
9
  }
10
10
 
@@ -5,7 +5,7 @@ import Discord from "discord.js";
5
5
  export type TDBIUserContextMenuOmitted = Omit<DBIUserContextMenu, "type" | "description" | "dbi" | "options">;
6
6
 
7
7
  export interface IDBIUserContextMenuExecuteCtx extends IDBIBaseExecuteCtx {
8
- interaction: Discord.UserContextMenuCommandInteraction<Discord.CacheType>;
8
+ interaction: Discord.UserContextMenuCommandInteraction<"cached">;
9
9
  }
10
10
 
11
11
  export class DBIUserContextMenu extends DBIBaseInteraction {