mirror of
https://github.com/discordeno/discordeno.git
synced 2026-05-31 07:50:07 +00:00
Update application_command_interaction_data_option.ts
This commit is contained in:
@@ -1,13 +1,88 @@
|
||||
import { Channel } from "../channels/channel.ts";
|
||||
import { Role } from "../permissions/role.ts";
|
||||
import { User } from "../users/user.ts";
|
||||
import { DiscordApplicationCommandOptionTypes } from "./application_command_option_types.ts";
|
||||
|
||||
/** https://discord.com/developers/docs/interactions/slash-commands#interaction-applicationcommandinteractiondataoption */
|
||||
export interface ApplicationCommandInteractionDataOption {
|
||||
export type ApplicationCommandInteractionDataOption =
|
||||
| ApplicationCommandInteractionDataOptionSubCommand
|
||||
| ApplicationCommandInteractionDataOptionSubCommandGroup
|
||||
| ApplicationCommandInteractionDataOptionString
|
||||
| ApplicationCommandInteractionDataOptionInteger
|
||||
| ApplicationCommandInteractionDataOptionBoolean
|
||||
| ApplicationCommandInteractionDataOptionUser
|
||||
| ApplicationCommandInteractionDataOptionChannel
|
||||
| ApplicationCommandInteractionDataOptionRole
|
||||
| ApplicationCommandInteractionDataOptionMentionable;
|
||||
|
||||
interface ApplicationCommandInteractionDataOptionBase<
|
||||
T extends DiscordApplicationCommandOptionTypes,
|
||||
V = unknown,
|
||||
> {
|
||||
/** The name of the parameter */
|
||||
name: string;
|
||||
/** value of DiscordApplicationCommandOptionTypes */
|
||||
type: DiscordApplicationCommandOptionTypes;
|
||||
/** Type of the option */
|
||||
type: T;
|
||||
/** The value of the pair */
|
||||
value?: DiscordApplicationCommandOptionTypes;
|
||||
value: V;
|
||||
}
|
||||
|
||||
export interface ApplicationCommandInteractionDataOptionSubCommand
|
||||
extends
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.SUB_COMMAND
|
||||
> {
|
||||
/** Present if this option is a group or subcommand */
|
||||
options?: ApplicationCommandInteractionDataOption[];
|
||||
}
|
||||
|
||||
export interface ApplicationCommandInteractionDataOptionSubCommandGroup
|
||||
extends
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.SUB_COMMAND_GROUP
|
||||
> {
|
||||
/** Present if this option is a group or subcommand */
|
||||
options?: ApplicationCommandInteractionDataOption[];
|
||||
}
|
||||
|
||||
export type ApplicationCommandInteractionDataOptionString =
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.STRING,
|
||||
string
|
||||
>;
|
||||
|
||||
export type ApplicationCommandInteractionDataOptionInteger =
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.INTEGER,
|
||||
number
|
||||
>;
|
||||
|
||||
export type ApplicationCommandInteractionDataOptionBoolean =
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.BOOLEAN,
|
||||
boolean
|
||||
>;
|
||||
|
||||
export type ApplicationCommandInteractionDataOptionUser =
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.USER,
|
||||
User
|
||||
>;
|
||||
|
||||
export type ApplicationCommandInteractionDataOptionChannel =
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.CHANNEL,
|
||||
Channel
|
||||
>;
|
||||
|
||||
export type ApplicationCommandInteractionDataOptionRole =
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.ROLE,
|
||||
Role
|
||||
>;
|
||||
|
||||
export type ApplicationCommandInteractionDataOptionMentionable =
|
||||
ApplicationCommandInteractionDataOptionBase<
|
||||
DiscordApplicationCommandOptionTypes.MENTIONABLE,
|
||||
bigint
|
||||
>;
|
||||
|
||||
Reference in New Issue
Block a user