mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 04:23:31 +01:00
feat: add support for localized slash commands (v13 backport) (#7766)
This commit is contained in:
44
typings/index.d.ts
vendored
44
typings/index.d.ts
vendored
@@ -52,6 +52,8 @@ import {
|
||||
GatewayVoiceStateUpdateDispatchData,
|
||||
RESTPostAPIApplicationCommandsJSONBody,
|
||||
Snowflake,
|
||||
LocalizationMap,
|
||||
LocaleString,
|
||||
} from 'discord-api-types/v9';
|
||||
import { ChildProcess } from 'node:child_process';
|
||||
import { EventEmitter } from 'node:events';
|
||||
@@ -223,12 +225,16 @@ export class ApplicationCommand<PermissionsFetchType = {}> extends Base {
|
||||
public readonly createdTimestamp: number;
|
||||
public defaultPermission: boolean;
|
||||
public description: string;
|
||||
public descriptionLocalizations: LocalizationMap | null;
|
||||
public descriptionLocalized: string | null;
|
||||
public guild: Guild | null;
|
||||
public guildId: Snowflake | null;
|
||||
public readonly manager: ApplicationCommandManager;
|
||||
public id: Snowflake;
|
||||
public name: string;
|
||||
public options: ApplicationCommandOption[];
|
||||
public nameLocalizations: LocalizationMap | null;
|
||||
public nameLocalized: string | null;
|
||||
public options: (ApplicationCommandOption & { nameLocalized?: string; descriptionLocalized?: string })[];
|
||||
public permissions: ApplicationCommandPermissionsManager<
|
||||
PermissionsFetchType,
|
||||
PermissionsFetchType,
|
||||
@@ -241,7 +247,11 @@ export class ApplicationCommand<PermissionsFetchType = {}> extends Base {
|
||||
public delete(): Promise<ApplicationCommand<PermissionsFetchType>>;
|
||||
public edit(data: ApplicationCommandData): Promise<ApplicationCommand<PermissionsFetchType>>;
|
||||
public setName(name: string): Promise<ApplicationCommand<PermissionsFetchType>>;
|
||||
public setNameLocalizations(nameLocalizations: LocalizationMap): Promise<ApplicationCommand<PermissionsFetchType>>;
|
||||
public setDescription(description: string): Promise<ApplicationCommand<PermissionsFetchType>>;
|
||||
public setDescriptionLocalizations(
|
||||
descriptionLocalizations: LocalizationMap,
|
||||
): Promise<ApplicationCommand<PermissionsFetchType>>;
|
||||
public setDefaultPermission(defaultPermission?: boolean): Promise<ApplicationCommand<PermissionsFetchType>>;
|
||||
public setOptions(options: ApplicationCommandOptionData[]): Promise<ApplicationCommand<PermissionsFetchType>>;
|
||||
public equals(
|
||||
@@ -773,7 +783,7 @@ export class AutocompleteInteraction<Cached extends CacheType = CacheType> exten
|
||||
public inCachedGuild(): this is AutocompleteInteraction<'cached'>;
|
||||
public inRawGuild(): this is AutocompleteInteraction<'raw'>;
|
||||
private transformOption(option: APIApplicationCommandOption): CommandInteractionOption;
|
||||
public respond(options: ApplicationCommandOptionChoice[]): Promise<void>;
|
||||
public respond(options: ApplicationCommandOptionChoiceData[]): Promise<void>;
|
||||
}
|
||||
|
||||
export class CommandInteractionOptionResolver<Cached extends CacheType = CacheType> {
|
||||
@@ -830,7 +840,7 @@ export class CommandInteractionOptionResolver<Cached extends CacheType = CacheTy
|
||||
): NonNullable<CommandInteractionOption<Cached>['member' | 'role' | 'user']> | null;
|
||||
public getMessage(name: string, required: true): NonNullable<CommandInteractionOption<Cached>['message']>;
|
||||
public getMessage(name: string, required?: boolean): NonNullable<CommandInteractionOption<Cached>['message']> | null;
|
||||
public getFocused(getFull: true): ApplicationCommandOptionChoice;
|
||||
public getFocused(getFull: true): ApplicationCommandOptionChoiceData;
|
||||
public getFocused(getFull?: boolean): string | number;
|
||||
public getAttachment(name: string, required: true): NonNullable<CommandInteractionOption<Cached>['attachment']>;
|
||||
public getAttachment(
|
||||
@@ -3136,6 +3146,8 @@ export class ChannelManager extends CachedManager<Snowflake, AnyChannel, Channel
|
||||
public fetch(id: Snowflake, options?: FetchChannelOptions): Promise<AnyChannel | null>;
|
||||
}
|
||||
|
||||
export type FetchGuildApplicationCommandFetchOptions = Omit<FetchApplicationCommandOptions, 'guildId'>;
|
||||
|
||||
export class GuildApplicationCommandManager extends ApplicationCommandManager<ApplicationCommand, {}, Guild> {
|
||||
private constructor(guild: Guild, iterable?: Iterable<RawApplicationCommandData>);
|
||||
public guild: Guild;
|
||||
@@ -3145,9 +3157,12 @@ export class GuildApplicationCommandManager extends ApplicationCommandManager<Ap
|
||||
command: ApplicationCommandResolvable,
|
||||
data: ApplicationCommandDataResolvable,
|
||||
): Promise<ApplicationCommand>;
|
||||
public fetch(id: Snowflake, options?: BaseFetchOptions): Promise<ApplicationCommand>;
|
||||
public fetch(options: BaseFetchOptions): Promise<Collection<Snowflake, ApplicationCommand>>;
|
||||
public fetch(id?: undefined, options?: BaseFetchOptions): Promise<Collection<Snowflake, ApplicationCommand>>;
|
||||
public fetch(id: Snowflake, options?: FetchGuildApplicationCommandFetchOptions): Promise<ApplicationCommand>;
|
||||
public fetch(options: FetchGuildApplicationCommandFetchOptions): Promise<Collection<Snowflake, ApplicationCommand>>;
|
||||
public fetch(
|
||||
id?: undefined,
|
||||
options?: FetchGuildApplicationCommandFetchOptions,
|
||||
): Promise<Collection<Snowflake, ApplicationCommand>>;
|
||||
public set(commands: ApplicationCommandDataResolvable[]): Promise<Collection<Snowflake, ApplicationCommand>>;
|
||||
}
|
||||
|
||||
@@ -3738,6 +3753,7 @@ export interface ApplicationAsset {
|
||||
|
||||
export interface BaseApplicationCommandData {
|
||||
name: string;
|
||||
nameLocalizations?: LocalizationMap;
|
||||
defaultPermission?: boolean;
|
||||
}
|
||||
|
||||
@@ -3769,7 +3785,9 @@ export type CommandOptionNonChoiceResolvableType = Exclude<
|
||||
|
||||
export interface BaseApplicationCommandOptionsData {
|
||||
name: string;
|
||||
nameLocalizations?: LocalizationMap;
|
||||
description: string;
|
||||
descriptionLocalizations?: LocalizationMap;
|
||||
required?: boolean;
|
||||
autocomplete?: never;
|
||||
}
|
||||
@@ -3784,6 +3802,7 @@ export interface MessageApplicationCommandData extends BaseApplicationCommandDat
|
||||
|
||||
export interface ChatInputApplicationCommandData extends BaseApplicationCommandData {
|
||||
description: string;
|
||||
descriptionLocalizations?: LocalizationMap;
|
||||
type?: 'CHAT_INPUT' | ApplicationCommandTypes.CHAT_INPUT;
|
||||
options?: ApplicationCommandOptionData[];
|
||||
}
|
||||
@@ -3817,13 +3836,13 @@ export interface ApplicationCommandAutocompleteOption extends Omit<BaseApplicati
|
||||
|
||||
export interface ApplicationCommandChoicesData extends Omit<BaseApplicationCommandOptionsData, 'autocomplete'> {
|
||||
type: CommandOptionChoiceResolvableType;
|
||||
choices?: ApplicationCommandOptionChoice[];
|
||||
choices?: ApplicationCommandOptionChoiceData[];
|
||||
autocomplete?: false;
|
||||
}
|
||||
|
||||
export interface ApplicationCommandChoicesOption extends Omit<BaseApplicationCommandOptionsData, 'autocomplete'> {
|
||||
type: Exclude<CommandOptionChoiceResolvableType, ApplicationCommandOptionTypes>;
|
||||
choices?: ApplicationCommandOptionChoice[];
|
||||
choices?: ApplicationCommandOptionChoiceData[];
|
||||
autocomplete?: false;
|
||||
}
|
||||
|
||||
@@ -3892,11 +3911,16 @@ export type ApplicationCommandOption =
|
||||
| ApplicationCommandNumericOption
|
||||
| ApplicationCommandSubCommand;
|
||||
|
||||
export interface ApplicationCommandOptionChoice {
|
||||
export interface ApplicationCommandOptionChoiceData {
|
||||
name: string;
|
||||
nameLocalizations?: LocalizationMap;
|
||||
value: string | number;
|
||||
}
|
||||
|
||||
export interface ApplicationCommandOptionChoice extends ApplicationCommandOptionChoiceData {
|
||||
nameLocalized?: string;
|
||||
}
|
||||
|
||||
export type ApplicationCommandType = keyof typeof ApplicationCommandTypes;
|
||||
|
||||
export type ApplicationCommandOptionType = keyof typeof ApplicationCommandOptionTypes;
|
||||
@@ -4558,6 +4582,8 @@ export type ExplicitContentFilterLevel = keyof typeof ExplicitContentFilterLevel
|
||||
|
||||
export interface FetchApplicationCommandOptions extends BaseFetchOptions {
|
||||
guildId?: Snowflake;
|
||||
locale?: LocaleString;
|
||||
withLocalizations?: boolean;
|
||||
}
|
||||
|
||||
export interface FetchArchivedThreadOptions {
|
||||
|
||||
Reference in New Issue
Block a user