From ddf2046554a1b9b097ea9b8d908b2fb05b7295f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dorian=20Oszcz=C4=99da?= Date: Sun, 28 Aug 2022 19:12:41 +0100 Subject: [PATCH] fix: Add missing properties to application command create/update payloads. (#2397) * misc: Add `descriptionLocalizations` to properties omitted for context commands. * style: 'option/s' -> 'command/s'. * fix: Add missing properties to payloads. --- .../commands/createApplicationCommand.ts | 37 ++++++++++++------- .../commands/upsertApplicationCommand.ts | 27 ++++++++++---- .../commands/upsertApplicationCommands.ts | 27 ++++++++++---- 3 files changed, 61 insertions(+), 30 deletions(-) diff --git a/helpers/interactions/commands/createApplicationCommand.ts b/helpers/interactions/commands/createApplicationCommand.ts index a6c9c50af..603f138c5 100644 --- a/helpers/interactions/commands/createApplicationCommand.ts +++ b/helpers/interactions/commands/createApplicationCommand.ts @@ -16,7 +16,7 @@ import { AtLeastOne, PermissionStrings } from "../../../types/shared.ts"; */ export async function createApplicationCommand( bot: Bot, - options: CreateApplicationCommand | CreateContextApplicationCommand, + command: CreateApplicationCommand | CreateContextApplicationCommand, guildId?: bigint, ): Promise { const result = await bot.rest.runMethod( @@ -25,19 +25,27 @@ export async function createApplicationCommand( guildId ? bot.constants.routes.COMMANDS_GUILD(bot.applicationId, guildId) : bot.constants.routes.COMMANDS(bot.applicationId), - isContextApplicationCommand(options) - ? { name: options.name, name_localizations: options.nameLocalizations, type: options.type } - : { - name: options.name, - name_localizations: options.nameLocalizations, - description: options.description, - description_localizations: options.descriptionLocalizations, - type: options.type, - options: options.options ? makeOptionsForCommand(options.options) : undefined, - default_member_permissions: options.defaultMemberPermissions - ? bot.utils.calculateBits(options.defaultMemberPermissions) + isContextApplicationCommand(command) + ? { + name: command.name, + name_localizations: command.nameLocalizations, + type: command.type, + default_member_permissions: command.defaultMemberPermissions + ? bot.utils.calculateBits(command.defaultMemberPermissions) : undefined, - dm_permission: options.dmPermission, + dm_permission: command.dmPermission, + } + : { + name: command.name, + name_localizations: command.nameLocalizations, + description: command.description, + description_localizations: command.descriptionLocalizations, + type: command.type, + options: command.options ? makeOptionsForCommand(command.options) : undefined, + default_member_permissions: command.defaultMemberPermissions + ? bot.utils.calculateBits(command.defaultMemberPermissions) + : undefined, + dm_permission: command.dmPermission, }, ); @@ -94,7 +102,8 @@ export interface CreateApplicationCommand { } /** https://discord.com/developers/docs/interactions/application-commands#endpoints-json-params */ -export interface CreateContextApplicationCommand extends Omit { +export interface CreateContextApplicationCommand + extends Omit { /** The type of the command */ type: ApplicationCommandTypes.Message | ApplicationCommandTypes.User; } diff --git a/helpers/interactions/commands/upsertApplicationCommand.ts b/helpers/interactions/commands/upsertApplicationCommand.ts index bd99ee30b..5913d437f 100644 --- a/helpers/interactions/commands/upsertApplicationCommand.ts +++ b/helpers/interactions/commands/upsertApplicationCommand.ts @@ -15,7 +15,7 @@ import { export async function upsertApplicationCommand( bot: Bot, commandId: bigint, - options: AtLeastOne | AtLeastOne, + command: AtLeastOne | AtLeastOne, guildId?: bigint, ): Promise { const result = await bot.rest.runMethod( @@ -24,16 +24,27 @@ export async function upsertApplicationCommand( guildId ? bot.constants.routes.COMMANDS_GUILD_ID(bot.applicationId, guildId, commandId) : bot.constants.routes.COMMANDS_ID(bot.applicationId, commandId), - isContextApplicationCommand(options) + isContextApplicationCommand(command) ? { - name: options.name, - type: options.type, + name: command.name, + name_localizations: command.nameLocalizations, + type: command.type, + default_member_permissions: command.defaultMemberPermissions + ? bot.utils.calculateBits(command.defaultMemberPermissions) + : undefined, + dm_permission: command.dmPermission, } : { - name: options.name, - description: options.description, - type: options.type, - options: options.options ? makeOptionsForCommand(options.options) : undefined, + name: command.name, + name_localizations: command.nameLocalizations, + description: command.description, + description_localizations: command.descriptionLocalizations, + type: command.type, + options: command.options ? makeOptionsForCommand(command.options) : undefined, + default_member_permissions: command.defaultMemberPermissions + ? bot.utils.calculateBits(command.defaultMemberPermissions) + : undefined, + dm_permission: command.dmPermission, }, ); diff --git a/helpers/interactions/commands/upsertApplicationCommands.ts b/helpers/interactions/commands/upsertApplicationCommands.ts index 9d06e60db..a24c76105 100644 --- a/helpers/interactions/commands/upsertApplicationCommands.ts +++ b/helpers/interactions/commands/upsertApplicationCommands.ts @@ -16,7 +16,7 @@ import { */ export async function upsertApplicationCommands( bot: Bot, - options: (UpsertApplicationCommands | CreateContextApplicationCommand)[], + commands: (UpsertApplicationCommands | CreateContextApplicationCommand)[], guildId?: bigint, ): Promise> { const results = await bot.rest.runMethod( @@ -25,16 +25,27 @@ export async function upsertApplicationCommands( guildId ? bot.constants.routes.COMMANDS_GUILD(bot.applicationId, guildId) : bot.constants.routes.COMMANDS(bot.applicationId), - options.map((option) => (isContextApplicationCommand(option) + commands.map((command) => (isContextApplicationCommand(command) ? { - name: option.name, - type: option.type, + name: command.name, + name_localizations: command.nameLocalizations, + type: command.type, + default_member_permissions: command.defaultMemberPermissions + ? bot.utils.calculateBits(command.defaultMemberPermissions) + : undefined, + dm_permission: command.dmPermission, } : { - name: option.name, - description: option.description, - type: option.type, - options: option.options ? makeOptionsForCommand(option.options) : undefined, + name: command.name, + name_localizations: command.nameLocalizations, + description: command.description, + description_localizations: command.descriptionLocalizations, + type: command.type, + options: command.options ? makeOptionsForCommand(command.options) : undefined, + default_member_permissions: command.defaultMemberPermissions + ? bot.utils.calculateBits(command.defaultMemberPermissions) + : undefined, + dm_permission: command.dmPermission, }) ), );