@mostfeatured/dbi 0.1.30 → 0.1.32

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,7 +44,7 @@ async function handleMessageCommands(dbi, message) {
44
44
  }
45
45
  }
46
46
  }
47
- if (!chatInput)
47
+ if (!chatInput || chatInput.other?.messageCommand?.ignore)
48
48
  return;
49
49
  const interaction = new FakeMessageInteraction_1.FakeMessageInteraction(dbi, message, chatInput, locale, commandName, usedPrefix);
50
50
  const builtLocale = {
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n ApplicationCommandType,\r\n ChatInputCommandInteraction,\r\n Message,\r\n MessagePayload,\r\n ApplicationCommandOptionType,\r\n} from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\r\nimport { TDBILocaleString } from \"../types/other/Locale\";\r\n\r\nconst INTEGER_REGEX = /^-?\\d+$/;\r\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\r\n\r\nexport type TDBIMessageCommandArgumentErrorTypes =\r\n | \"MissingRequiredOption\"\r\n | \"MinLength\"\r\n | \"MaxLength\"\r\n | \"InvalidChoice\"\r\n | \"InvalidInteger\"\r\n | \"MinInteger\"\r\n | \"MaxInteger\"\r\n | \"InvalidNumber\"\r\n | \"MinNumber\"\r\n | \"MaxNumber\"\r\n | \"InvalidBoolean\"\r\n | \"InvalidUser\"\r\n | \"InvalidChannel\"\r\n | \"InvalidRole\"\r\n | \"InvalidMentionable\"\r\n | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(\r\n dbi: DBI<NamespaceEnums>,\r\n message: Message\r\n) {\r\n const chatInputs = dbi.data.interactions.filter(\r\n (i) => i.type === \"ChatInput\"\r\n );\r\n const prefixes = await dbi.config.messageCommands.prefixes({ message });\r\n if (!prefixes?.length) return;\r\n const content = message.content;\r\n const usedPrefix = prefixes.find((p) => content.startsWith(p));\r\n if (!usedPrefix) return;\r\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\r\n const contentLower = contentWithoutPrefix.toLowerCase();\r\n\r\n let locale: string =\r\n message.guild.preferredLocale?.split(\"-\")?.at(0) ||\r\n (dbi.config.defaults.locale as any);\r\n let usedAlias: string | undefined;\r\n let chatInput = chatInputs.find((i) => {\r\n let found = contentLower.startsWith(i.name);\r\n if (found) return true;\r\n let alias = i.other?.messageCommand?.aliases?.find((a) =>\r\n contentLower.startsWith(a)\r\n );\r\n if (alias) {\r\n usedAlias = alias;\r\n return true;\r\n }\r\n return false;\r\n });\r\n let commandName = usedAlias ?? chatInput?.name;\r\n\r\n if (!chatInput) {\r\n fLoop: for (const [localeInterName, localeData] of dbi.data\r\n .interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(\r\n localeData.data || {}\r\n )) {\r\n if (contentLower.startsWith(translation.name)) {\r\n commandName = translation.name;\r\n locale = localeName;\r\n chatInput = chatInputs.find((i) => i.name === localeData.name);\r\n break fLoop;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!chatInput) return;\r\n\r\n const interaction = new FakeMessageInteraction(\r\n dbi,\r\n message,\r\n chatInput as any,\r\n locale,\r\n commandName,\r\n usedPrefix\r\n );\r\n\r\n const builtLocale = {\r\n user:\r\n dbi.data.locales.get(interaction.locale) ||\r\n dbi.data.locales.get(dbi.config.defaults.locale.name),\r\n guild: message.guild?.preferredLocale\r\n ? dbi.data.locales.get(\r\n message.guild?.preferredLocale?.split(\"-\")?.at(0)\r\n ) || dbi.data.locales.get(dbi.config.defaults.locale.name)\r\n : null,\r\n };\r\n\r\n const { defaultMemberPermissions, directMessages } = chatInput as any;\r\n\r\n if (typeof directMessages !== \"undefined\" && !directMessages && !message.guild) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDirectMessageUsageError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput\r\n });\r\n if (!res) return;\r\n }\r\n\r\n if (Array.isArray(defaultMemberPermissions) && message.guild && message.member) {\r\n const perms = message.member.permissions.toArray();\r\n if (!defaultMemberPermissions.every((p) => perms.includes(p))) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDefaultMemberPermissionsError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput,\r\n permissions: defaultMemberPermissions\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n if (chatInput.options.length) {\r\n let errorType: TDBIMessageCommandArgumentErrorTypes;\r\n let lastOption: any;\r\n let lastValue: any;\r\n let lastExtra: any;\r\n let lastIndex: number;\r\n for (let i = 0; i < chatInput.options.length; i++) {\r\n lastIndex = i;\r\n const option: any = interaction.dbiChatInputOptions[i];\r\n const value = interaction.parsedArgs.get(option.name)?.value;\r\n\r\n lastOption = option;\r\n lastValue = value;\r\n\r\n switch (option.type) {\r\n case ApplicationCommandOptionType.String: {\r\n if (!option.required && !value) break;\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find((c) => c.name === value || c.value === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.name === value ||\r\n c.value === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n if (option.minLength && value?.length < option.minLength) {\r\n errorType = \"MinLength\";\r\n break;\r\n }\r\n if (option.maxLength && value?.length > option.maxLength) {\r\n errorType = \"MaxLength\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedInt = parseInt(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedInt || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedInt ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!INTEGER_REGEX.test(value)) {\r\n errorType = \"InvalidInteger\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedInt < option.minValue) {\r\n errorType = \"MinInteger\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedInt > option.maxValue) {\r\n errorType = \"MaxInteger\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedFloat = parseFloat(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedFloat || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedFloat ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!NUMBER_REGEX.test(value)) {\r\n errorType = \"InvalidNumber\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedFloat < option.minValue) {\r\n errorType = \"MinNumber\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedFloat > option.maxValue) {\r\n errorType = \"MaxNumber\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n let boolKeys = Object.keys(\r\n dbi.config.messageCommands.typeAliases.booleans\r\n );\r\n if (option.required && !boolKeys.includes(value?.toLowerCase?.())) {\r\n errorType = \"InvalidBoolean\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n await message.client.users\r\n .fetch(interaction.options.getUserId(option.name))\r\n .catch(() => { });\r\n if (option.required && !interaction.options.getUser(option.name)) {\r\n errorType = \"InvalidUser\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n await message.client.channels\r\n .fetch(interaction.options.getChannelId(option.name))\r\n .catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getChannel(\r\n option.name,\r\n null,\r\n option.channelTypes\r\n )\r\n ) {\r\n errorType = \"InvalidChannel\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n await message.guild.roles\r\n .fetch(interaction.options.getRoleId(option.name))\r\n .catch(() => { });\r\n if (option.required && !interaction.options.getRole(option.name)) {\r\n errorType = \"InvalidRole\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n let mentionableId = interaction.options.getMentionableId(option.name);\r\n await message.guild.roles.fetch(mentionableId).catch(() => { });\r\n await message.client.channels.fetch(mentionableId).catch(() => { });\r\n await message.client.users.fetch(mentionableId).catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getMentionable(option.name)\r\n ) {\r\n errorType = \"InvalidMentionable\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n break;\r\n } else {\r\n lastExtra = null;\r\n lastIndex = null;\r\n lastOption = null;\r\n lastValue = null;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n error: {\r\n type: errorType,\r\n option: lastOption,\r\n extra: lastExtra,\r\n index: lastIndex,\r\n },\r\n value: lastValue,\r\n dbiInteraction: chatInput,\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n interaction.init();\r\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\r\n}\r\n"]}
1
+ {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n ApplicationCommandType,\r\n ChatInputCommandInteraction,\r\n Message,\r\n MessagePayload,\r\n ApplicationCommandOptionType,\r\n} from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\r\nimport { TDBILocaleString } from \"../types/other/Locale\";\r\n\r\nconst INTEGER_REGEX = /^-?\\d+$/;\r\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\r\n\r\nexport type TDBIMessageCommandArgumentErrorTypes =\r\n | \"MissingRequiredOption\"\r\n | \"MinLength\"\r\n | \"MaxLength\"\r\n | \"InvalidChoice\"\r\n | \"InvalidInteger\"\r\n | \"MinInteger\"\r\n | \"MaxInteger\"\r\n | \"InvalidNumber\"\r\n | \"MinNumber\"\r\n | \"MaxNumber\"\r\n | \"InvalidBoolean\"\r\n | \"InvalidUser\"\r\n | \"InvalidChannel\"\r\n | \"InvalidRole\"\r\n | \"InvalidMentionable\"\r\n | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(\r\n dbi: DBI<NamespaceEnums>,\r\n message: Message\r\n) {\r\n const chatInputs = dbi.data.interactions.filter(\r\n (i) => i.type === \"ChatInput\"\r\n );\r\n const prefixes = await dbi.config.messageCommands.prefixes({ message });\r\n if (!prefixes?.length) return;\r\n const content = message.content;\r\n const usedPrefix = prefixes.find((p) => content.startsWith(p));\r\n if (!usedPrefix) return;\r\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\r\n const contentLower = contentWithoutPrefix.toLowerCase();\r\n\r\n let locale: string =\r\n message.guild.preferredLocale?.split(\"-\")?.at(0) ||\r\n (dbi.config.defaults.locale as any);\r\n let usedAlias: string | undefined;\r\n let chatInput = chatInputs.find((i) => {\r\n let found = contentLower.startsWith(i.name);\r\n if (found) return true;\r\n let alias = i.other?.messageCommand?.aliases?.find((a) =>\r\n contentLower.startsWith(a)\r\n );\r\n if (alias) {\r\n usedAlias = alias;\r\n return true;\r\n }\r\n return false;\r\n });\r\n let commandName = usedAlias ?? chatInput?.name;\r\n\r\n if (!chatInput) {\r\n fLoop: for (const [localeInterName, localeData] of dbi.data\r\n .interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(\r\n localeData.data || {}\r\n )) {\r\n if (contentLower.startsWith(translation.name)) {\r\n commandName = translation.name;\r\n locale = localeName;\r\n chatInput = chatInputs.find((i) => i.name === localeData.name);\r\n break fLoop;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!chatInput || chatInput.other?.messageCommand?.ignore) return;\r\n\r\n const interaction = new FakeMessageInteraction(\r\n dbi,\r\n message,\r\n chatInput as any,\r\n locale,\r\n commandName,\r\n usedPrefix\r\n );\r\n\r\n const builtLocale = {\r\n user:\r\n dbi.data.locales.get(interaction.locale) ||\r\n dbi.data.locales.get(dbi.config.defaults.locale.name),\r\n guild: message.guild?.preferredLocale\r\n ? dbi.data.locales.get(\r\n message.guild?.preferredLocale?.split(\"-\")?.at(0)\r\n ) || dbi.data.locales.get(dbi.config.defaults.locale.name)\r\n : null,\r\n };\r\n\r\n const { defaultMemberPermissions, directMessages } = chatInput as any;\r\n\r\n if (typeof directMessages !== \"undefined\" && !directMessages && !message.guild) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDirectMessageUsageError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput\r\n });\r\n if (!res) return;\r\n }\r\n\r\n if (Array.isArray(defaultMemberPermissions) && message.guild && message.member) {\r\n const perms = message.member.permissions.toArray();\r\n if (!defaultMemberPermissions.every((p) => perms.includes(p))) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDefaultMemberPermissionsError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput,\r\n permissions: defaultMemberPermissions\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n if (chatInput.options.length) {\r\n let errorType: TDBIMessageCommandArgumentErrorTypes;\r\n let lastOption: any;\r\n let lastValue: any;\r\n let lastExtra: any;\r\n let lastIndex: number;\r\n for (let i = 0; i < chatInput.options.length; i++) {\r\n lastIndex = i;\r\n const option: any = interaction.dbiChatInputOptions[i];\r\n const value = interaction.parsedArgs.get(option.name)?.value;\r\n\r\n lastOption = option;\r\n lastValue = value;\r\n\r\n switch (option.type) {\r\n case ApplicationCommandOptionType.String: {\r\n if (!option.required && !value) break;\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find((c) => c.name === value || c.value === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.name === value ||\r\n c.value === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n if (option.minLength && value?.length < option.minLength) {\r\n errorType = \"MinLength\";\r\n break;\r\n }\r\n if (option.maxLength && value?.length > option.maxLength) {\r\n errorType = \"MaxLength\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedInt = parseInt(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedInt || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedInt ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!INTEGER_REGEX.test(value)) {\r\n errorType = \"InvalidInteger\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedInt < option.minValue) {\r\n errorType = \"MinInteger\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedInt > option.maxValue) {\r\n errorType = \"MaxInteger\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedFloat = parseFloat(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value,\r\n });\r\n if (!choices.length)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedFloat || c.name === value)\r\n ) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedFloat ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!NUMBER_REGEX.test(value)) {\r\n errorType = \"InvalidNumber\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedFloat < option.minValue) {\r\n errorType = \"MinNumber\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedFloat > option.maxValue) {\r\n errorType = \"MaxNumber\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n let boolKeys = Object.keys(\r\n dbi.config.messageCommands.typeAliases.booleans\r\n );\r\n if (option.required && !boolKeys.includes(value?.toLowerCase?.())) {\r\n errorType = \"InvalidBoolean\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n await message.client.users\r\n .fetch(interaction.options.getUserId(option.name))\r\n .catch(() => { });\r\n if (option.required && !interaction.options.getUser(option.name)) {\r\n errorType = \"InvalidUser\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n await message.client.channels\r\n .fetch(interaction.options.getChannelId(option.name))\r\n .catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getChannel(\r\n option.name,\r\n null,\r\n option.channelTypes\r\n )\r\n ) {\r\n errorType = \"InvalidChannel\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n await message.guild.roles\r\n .fetch(interaction.options.getRoleId(option.name))\r\n .catch(() => { });\r\n if (option.required && !interaction.options.getRole(option.name)) {\r\n errorType = \"InvalidRole\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n let mentionableId = interaction.options.getMentionableId(option.name);\r\n await message.guild.roles.fetch(mentionableId).catch(() => { });\r\n await message.client.channels.fetch(mentionableId).catch(() => { });\r\n await message.client.users.fetch(mentionableId).catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getMentionable(option.name)\r\n ) {\r\n errorType = \"InvalidMentionable\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n break;\r\n } else {\r\n lastExtra = null;\r\n lastIndex = null;\r\n lastOption = null;\r\n lastValue = null;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n error: {\r\n type: errorType,\r\n option: lastOption,\r\n extra: lastExtra,\r\n index: lastIndex,\r\n },\r\n value: lastValue,\r\n dbiInteraction: chatInput,\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n interaction.init();\r\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\r\n}\r\n"]}
@@ -46,6 +46,7 @@ export declare class DBIBaseInteraction<TNamespace extends NamespaceEnums> {
46
46
  other?: Record<string, any> & {
47
47
  messageCommand?: {
48
48
  aliases?: string[];
49
+ ignore?: boolean;
49
50
  };
50
51
  };
51
52
  rateLimits?: DBIRateLimit[];
@@ -1 +1 @@
1
- {"version":3,"file":"Interaction.d.ts","sourceRoot":"","sources":["../../src/types/Interaction.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,cAAc,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAEjP,MAAM,WAAW,kBAAkB,CAAC,UAAU,SAAS,cAAc;IACnE,WAAW,EACT,OAAO,CAAC,2BAA2B,GACnC,OAAO,CAAC,iCAAiC,GACzC,OAAO,CAAC,oCAAoC,GAC5C,OAAO,CAAC,sBAAsB,GAC9B,OAAO,CAAC,uBAAuB,GAC/B,OAAO,CAAC,wBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC;IAC5B,MAAM,EAAE;QACN,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;KAC9B,CAAA;IACD,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,cAAc,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7C,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,eAAe,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC;CAChE;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,IAAI,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAE7G,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,iBAAiB,GACjB,oBAAoB,GACpB,OAAO,GACP,cAAc,GACd,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,uBAAuB,GACvB,gBAAgB,GAChB,QAAQ,CAAC;AAEb,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AAGd,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAA;AAED,qBAAa,kBAAkB,CAAC,UAAU,SAAS,cAAc;gBACnD,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAezF,OAAO,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACxD,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,cAAc,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IAC1E,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG;IAE3B,SAAS,CAAC,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGrE"}
1
+ {"version":3,"file":"Interaction.d.ts","sourceRoot":"","sources":["../../src/types/Interaction.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,cAAc,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAEjP,MAAM,WAAW,kBAAkB,CAAC,UAAU,SAAS,cAAc;IACnE,WAAW,EACT,OAAO,CAAC,2BAA2B,GACnC,OAAO,CAAC,iCAAiC,GACzC,OAAO,CAAC,oCAAoC,GAC5C,OAAO,CAAC,sBAAsB,GAC9B,OAAO,CAAC,uBAAuB,GAC/B,OAAO,CAAC,wBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC;IAC5B,MAAM,EAAE;QACN,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;KAC9B,CAAA;IACD,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,cAAc,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7C,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,eAAe,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC;CAChE;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,IAAI,OAAO,CAAA;CAAE,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAE7G,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,iBAAiB,GACjB,oBAAoB,GACpB,OAAO,GACP,cAAc,GACd,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,GACnB,uBAAuB,GACvB,gBAAgB,GAChB,QAAQ,CAAC;AAEb,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AAGd,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAA;AAED,qBAAa,kBAAkB,CAAC,UAAU,SAAS,cAAc;gBACnD,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAezF,OAAO,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACxD,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,cAAc,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;IAC5F,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG;IAE3B,SAAS,CAAC,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Interaction.js","sourceRoot":"","sources":["../../src/types/Interaction.ts"],"names":[],"mappings":";;;AAgEA,MAAa,kBAAkB;IAC7B,YAAY,GAAoB,EAAE,GAAuD;QACvF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACrB,CAAC;IAED,OAAO,CAAiD;IACxD,GAAG,CAAkB;IACrB,IAAI,CAAS;IACb,WAAW,CAAS;IACX,IAAI,CAAuB;IACpC,OAAO,CAAe;IACtB,KAAK,CAAqE;IAC1E,UAAU,CAAkB;IAC5B,IAAI,CAAU;IACd,GAAG,CAAU;IACb,EAAE,CAAU;IACZ,MAAM,CAAC,SAAc,IAAS,CAAC;IAE/B,SAAS,CAAC,GAAmC;IAE7C,CAAC;CACF;AAhCD,gDAgCC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { NamespaceEnums, NamespaceData } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIButton } from \"./Components/Button\";\r\nimport { DBIChatInput } from \"./ChatInput/ChatInput\";\r\nimport { DBILocale } from \"./other/Locale\";\r\nimport { DBIMessageContextMenu } from \"./other/MessageContextMenu\";\r\nimport { DBIModal } from \"./Components/Modal\";\r\nimport { DBIStringSelectMenu } from \"./Components/StringSelectMenu\";\r\nimport { DBIUserContextMenu } from \"./other/UserContextMenu\";\r\n\r\nexport type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<TNamespace> | DBIButton<TNamespace> | DBIStringSelectMenu<TNamespace> | DBIMessageContextMenu<TNamespace> | DBIUserContextMenu<TNamespace> | DBIModal<TNamespace>;\r\n\r\nexport interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {\r\n interaction:\r\n | Discord.ChatInputCommandInteraction\r\n | Discord.UserContextMenuCommandInteraction\r\n | Discord.MessageContextMenuCommandInteraction\r\n | Discord.ModalSubmitInteraction\r\n | Discord.AutocompleteInteraction\r\n | Discord.AnySelectMenuInteraction\r\n | Discord.ButtonInteraction;\r\n locale: {\r\n user: DBILocale<TNamespace>,\r\n guild?: DBILocale<TNamespace>\r\n }\r\n dbi: DBI<TNamespace>;\r\n dbiInteraction: TDBIInteractions<TNamespace>;\r\n setRateLimit(type: TDBIRateLimitTypes, duration: number): Promise<any>;\r\n other: Record<string, any>;\r\n clientNamespace: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n}\r\n\r\nexport type TDBIReferencedData = ({ [key: string]: any, $ref: string, $unRef(): boolean } | string | number);\r\n\r\nexport type TDBIInteractionTypes =\r\n | \"ChatInput\"\r\n | \"UserContextMenu\"\r\n | \"MessageContextMenu\"\r\n | \"Modal\"\r\n | \"Autocomplete\"\r\n | \"StringSelectMenu\"\r\n | \"UserSelectMenu\"\r\n | \"ChannelSelectMenu\"\r\n | \"MentionableSelectMenu\"\r\n | \"RoleSelectMenu\"\r\n | \"Button\";\r\n\r\nexport type TDBIRateLimitTypes =\r\n | \"User\"\r\n | \"Channel\"\r\n | \"Guild\"\r\n | \"Member\"\r\n | \"Message\";\r\n\r\n\r\nexport type DBIRateLimit = {\r\n type: TDBIRateLimitTypes;\r\n /**\r\n * Duration in milliseconds.\r\n */\r\n duration: number;\r\n}\r\n\r\nexport class DBIBaseInteraction<TNamespace extends NamespaceEnums> {\r\n constructor(dbi: DBI<TNamespace>, cfg: Omit<DBIBaseInteraction<TNamespace>, \"dbi\" | \"at\">) {\r\n this.dbi = dbi;\r\n this.name = cfg.name;\r\n this.description = cfg.description;\r\n this.onExecute = cfg.onExecute;\r\n this.type = cfg.type;\r\n this.options = cfg.options;\r\n this.other = cfg.other;\r\n this.publish = cfg.publish ?? dbi.data.clients.first()?.namespace;\r\n this.rateLimits = cfg.rateLimits ?? [];\r\n this.flag = cfg.flag;\r\n this.at = Date.now();\r\n this.ttl = cfg.ttl;\r\n }\r\n\r\n publish?: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n dbi: DBI<TNamespace>;\r\n name: string;\r\n description: string;\r\n readonly type: TDBIInteractionTypes;\r\n options?: any | any[];\r\n other?: Record<string, any> & { messageCommand?: { aliases?: string[] } };\r\n rateLimits?: DBIRateLimit[];\r\n flag?: string;\r\n ttl?: number;\r\n at?: number;\r\n toJSON(overrides: any): any { }\r\n\r\n onExecute(ctx: IDBIBaseExecuteCtx<TNamespace>): Promise<void> | void {\r\n\r\n }\r\n}"]}
1
+ {"version":3,"file":"Interaction.js","sourceRoot":"","sources":["../../src/types/Interaction.ts"],"names":[],"mappings":";;;AAgEA,MAAa,kBAAkB;IAC7B,YAAY,GAAoB,EAAE,GAAuD;QACvF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACrB,CAAC;IAED,OAAO,CAAiD;IACxD,GAAG,CAAkB;IACrB,IAAI,CAAS;IACb,WAAW,CAAS;IACX,IAAI,CAAuB;IACpC,OAAO,CAAe;IACtB,KAAK,CAAuF;IAC5F,UAAU,CAAkB;IAC5B,IAAI,CAAU;IACd,GAAG,CAAU;IACb,EAAE,CAAU;IACZ,MAAM,CAAC,SAAc,IAAS,CAAC;IAE/B,SAAS,CAAC,GAAmC;IAE7C,CAAC;CACF;AAhCD,gDAgCC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { NamespaceEnums, NamespaceData } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIButton } from \"./Components/Button\";\r\nimport { DBIChatInput } from \"./ChatInput/ChatInput\";\r\nimport { DBILocale } from \"./other/Locale\";\r\nimport { DBIMessageContextMenu } from \"./other/MessageContextMenu\";\r\nimport { DBIModal } from \"./Components/Modal\";\r\nimport { DBIStringSelectMenu } from \"./Components/StringSelectMenu\";\r\nimport { DBIUserContextMenu } from \"./other/UserContextMenu\";\r\n\r\nexport type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<TNamespace> | DBIButton<TNamespace> | DBIStringSelectMenu<TNamespace> | DBIMessageContextMenu<TNamespace> | DBIUserContextMenu<TNamespace> | DBIModal<TNamespace>;\r\n\r\nexport interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {\r\n interaction:\r\n | Discord.ChatInputCommandInteraction\r\n | Discord.UserContextMenuCommandInteraction\r\n | Discord.MessageContextMenuCommandInteraction\r\n | Discord.ModalSubmitInteraction\r\n | Discord.AutocompleteInteraction\r\n | Discord.AnySelectMenuInteraction\r\n | Discord.ButtonInteraction;\r\n locale: {\r\n user: DBILocale<TNamespace>,\r\n guild?: DBILocale<TNamespace>\r\n }\r\n dbi: DBI<TNamespace>;\r\n dbiInteraction: TDBIInteractions<TNamespace>;\r\n setRateLimit(type: TDBIRateLimitTypes, duration: number): Promise<any>;\r\n other: Record<string, any>;\r\n clientNamespace: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n}\r\n\r\nexport type TDBIReferencedData = ({ [key: string]: any, $ref: string, $unRef(): boolean } | string | number);\r\n\r\nexport type TDBIInteractionTypes =\r\n | \"ChatInput\"\r\n | \"UserContextMenu\"\r\n | \"MessageContextMenu\"\r\n | \"Modal\"\r\n | \"Autocomplete\"\r\n | \"StringSelectMenu\"\r\n | \"UserSelectMenu\"\r\n | \"ChannelSelectMenu\"\r\n | \"MentionableSelectMenu\"\r\n | \"RoleSelectMenu\"\r\n | \"Button\";\r\n\r\nexport type TDBIRateLimitTypes =\r\n | \"User\"\r\n | \"Channel\"\r\n | \"Guild\"\r\n | \"Member\"\r\n | \"Message\";\r\n\r\n\r\nexport type DBIRateLimit = {\r\n type: TDBIRateLimitTypes;\r\n /**\r\n * Duration in milliseconds.\r\n */\r\n duration: number;\r\n}\r\n\r\nexport class DBIBaseInteraction<TNamespace extends NamespaceEnums> {\r\n constructor(dbi: DBI<TNamespace>, cfg: Omit<DBIBaseInteraction<TNamespace>, \"dbi\" | \"at\">) {\r\n this.dbi = dbi;\r\n this.name = cfg.name;\r\n this.description = cfg.description;\r\n this.onExecute = cfg.onExecute;\r\n this.type = cfg.type;\r\n this.options = cfg.options;\r\n this.other = cfg.other;\r\n this.publish = cfg.publish ?? dbi.data.clients.first()?.namespace;\r\n this.rateLimits = cfg.rateLimits ?? [];\r\n this.flag = cfg.flag;\r\n this.at = Date.now();\r\n this.ttl = cfg.ttl;\r\n }\r\n\r\n publish?: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n dbi: DBI<TNamespace>;\r\n name: string;\r\n description: string;\r\n readonly type: TDBIInteractionTypes;\r\n options?: any | any[];\r\n other?: Record<string, any> & { messageCommand?: { aliases?: string[], ignore?: boolean } };\r\n rateLimits?: DBIRateLimit[];\r\n flag?: string;\r\n ttl?: number;\r\n at?: number;\r\n toJSON(overrides: any): any { }\r\n\r\n onExecute(ctx: IDBIBaseExecuteCtx<TNamespace>): Promise<void> | void {\r\n\r\n }\r\n}"]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "@discordjs/rest": "^2.4.0",
4
4
  "async-and-quick": "^1.0.2",
5
5
  "discord-api-types": "^0.37.100",
6
- "discord-hybrid-sharding": "github:meister03/discord-hybrid-sharding",
6
+ "discord-hybrid-sharding": "^2.2.6",
7
7
  "discord.js": "^14.16.2",
8
8
  "lodash": "^4.17.21",
9
9
  "plsargs": "^0.1.6",
@@ -12,7 +12,7 @@
12
12
  "tslib": "^2.6.3"
13
13
  },
14
14
  "name": "@mostfeatured/dbi",
15
- "version": "0.1.30",
15
+ "version": "0.1.32",
16
16
  "main": "dist/index.js",
17
17
  "type": "commonjs",
18
18
  "private": false,
@@ -80,7 +80,7 @@ export async function handleMessageCommands(
80
80
  }
81
81
  }
82
82
 
83
- if (!chatInput) return;
83
+ if (!chatInput || chatInput.other?.messageCommand?.ignore) return;
84
84
 
85
85
  const interaction = new FakeMessageInteraction(
86
86
  dbi,
@@ -84,7 +84,7 @@ export class DBIBaseInteraction<TNamespace extends NamespaceEnums> {
84
84
  description: string;
85
85
  readonly type: TDBIInteractionTypes;
86
86
  options?: any | any[];
87
- other?: Record<string, any> & { messageCommand?: { aliases?: string[] } };
87
+ other?: Record<string, any> & { messageCommand?: { aliases?: string[], ignore?: boolean } };
88
88
  rateLimits?: DBIRateLimit[];
89
89
  flag?: string;
90
90
  ttl?: number;