mirror of
https://github.com/discordeno/discordeno.git
synced 2026-05-30 23:40:07 +00:00
* Simplify SfetchMembers (#2339) Co-authored-by: meister03 * Create leaveVoiceChannel.ts (#2342) * Update editFollowupMessage.ts (#2344) * Update editInteractionResponse.ts (#2343) * Update editMessage.ts (#2341) * Update calculateShardId.ts Fix wrong shardId calculations * Add Role Icon to Edit (#2346) Co-authored-by: meister03 * Add mix max length (#2347) Co-authored-by: meister03 * style: deno fmt * Fix Disabled Options (#2368) Co-authored-by: meister03 <meisterpi@gmail.com> * Add app_permissions (#2369) Co-authored-by: meister03 <meisterpi@gmail.com> * thread_id instead of threadId (#2378) Co-authored-by: Veeti K <veeti@veetik.com> * feat: Create `ApplicationCommandFlags` enumerator. (#2384) Co-authored-by: vxern <vxern@wordcollector.co.uk> * Small Changes in a bulk pr to close the issues (#2370) * Initial Commit * Close #2364 * Add preset whitelist to automod #2356 -> Resolve Issue * Close [api-docs] AutoMod message intent updates (#5083) #2330 * Breaking Channge | [api-docs] Update message type names (#5093) * message.interaction.name changed attitude | [api-docs] Update Change_Log.md #2333 * #2333 also closes #2316 * Clarify 45 chars length | Add those on permission plugins | [api-docs] text input label has max 45 characters (#4689) #2137 * Clarify webhook naming restrictions (#4625) #2094 * 8th August Webhook new View Channel perm | Closes #2363 * 8th August Webhook new View Channel perm | Closes #2363 * Document thread_name for execute webhook (#5007) #2263 * Close Update create and modify channel documentation (#4867) #2237 * unnecesary nullable tag in Modify Guild Member params (#5164) #2355 * deno fmt * deno fmt * Use .includefor disallowed webhook names" * Add Missing Enums & #2367, #2362, #2361, #2371, #2372. #2349, #2358, #2325 back * deno fmt :( Co-authored-by: meister03 <meisterpi@gmail.com> Co-authored-by: LTS20050703 <87189679+lts20050703@users.noreply.github.com> Co-authored-by: Tomato6966 <chris.pre03@gmail.com> Co-authored-by: ITOH <to@itoh.at> Co-authored-by: meister03 <meisterpi@gmail.com> Co-authored-by: Veeti K <veeti@veetik.com> Co-authored-by: vxern <vxern@wordcollector.co.uk> Co-authored-by: LTS20050703 <87189679+lts20050703@users.noreply.github.com>
61 lines
2.7 KiB
TypeScript
61 lines
2.7 KiB
TypeScript
import { Bot } from "../bot.ts";
|
|
import { DiscordApplicationCommandOption, DiscordApplicationCommandOptionChoice } from "../types/discord.ts";
|
|
import { ApplicationCommandOptionTypes, ChannelTypes, Localization } from "../types/shared.ts";
|
|
import { Optionalize } from "../types/shared.ts";
|
|
import { ApplicationCommandOptionChoice } from "./applicationCommandOptionChoice.ts";
|
|
|
|
export function transformApplicationCommandOption(
|
|
bot: Bot,
|
|
payload: DiscordApplicationCommandOption,
|
|
): ApplicationCommandOption {
|
|
return {
|
|
type: payload.type,
|
|
name: payload.name,
|
|
nameLocalizations: payload.name_localizations ?? undefined,
|
|
description: payload.description,
|
|
descriptionLocalizations: payload.description_localizations ?? undefined,
|
|
required: payload.required ?? false,
|
|
choices: payload.choices?.map((choice) => bot.transformers.applicationCommandOptionChoice(bot, choice)),
|
|
autocomplete: payload.autocomplete,
|
|
channelTypes: payload.channel_types,
|
|
minValue: payload.min_value,
|
|
maxValue: payload.max_value,
|
|
minLength: payload.min_length,
|
|
maxLength: payload.max_length,
|
|
options: payload.options?.map((option) => bot.transformers.applicationCommandOption(bot, option)),
|
|
};
|
|
}
|
|
|
|
// THIS TRANSFORMER HAS A CIRCULAR REFERENCE TO CALL ITSELF FOR OPTIONS SO AN AUTOMATED TYPE CAN NOT BE CREATED!
|
|
|
|
export interface ApplicationCommandOption {
|
|
/** Value of Application Command Option Type */
|
|
type: ApplicationCommandOptionTypes;
|
|
/** 1-32 character name matching lowercase `^[\w-]{1,32}$` */
|
|
name: string;
|
|
/** Localization object for the `name` field. Values follow the same restrictions as `name` */
|
|
nameLocalizations?: Localization;
|
|
/** 1-100 character description */
|
|
description: string;
|
|
/** Localization object for the `description` field. Values follow the same restrictions as `description` */
|
|
descriptionLocalizations?: Localization;
|
|
/** If the parameter is required or optional--default `false` */
|
|
required?: boolean;
|
|
/** Choices for `string` and `int` types for the user to pick from */
|
|
choices?: ApplicationCommandOptionChoice[];
|
|
/** If the option is a subcommand or subcommand group type, this nested options will be the parameters */
|
|
options?: ApplicationCommandOption[];
|
|
/** if autocomplete interactions are enabled for this `String`, `Integer`, or `Number` type option */
|
|
autocomplete?: boolean;
|
|
/** If the option is a channel type, the channels shown will be restricted to these types */
|
|
channelTypes?: ChannelTypes[];
|
|
/** Minimum number desired. */
|
|
minValue?: number;
|
|
/** Maximum number desired. */
|
|
maxValue?: number;
|
|
/** Minimum length desired. */
|
|
minLength?: number;
|
|
/** Maximum length desired. */
|
|
maxLength?: number;
|
|
}
|