fix: edit() data can be partial and defaultMemberPermissions can be null (#8163)

This commit is contained in:
Almeida
2022-06-24 09:42:20 +01:00
committed by GitHub
parent 5d3dd55a26
commit 0ffbef506a
4 changed files with 13 additions and 8 deletions

View File

@@ -173,7 +173,7 @@ class ApplicationCommandManager extends CachedManager {
/** /**
* Edits an application command. * Edits an application command.
* @param {ApplicationCommandResolvable} command The command to edit * @param {ApplicationCommandResolvable} command The command to edit
* @param {ApplicationCommandData|APIApplicationCommand} data The data to update the command with * @param {Partial<ApplicationCommandData|APIApplicationCommand>} data The data to update the command with
* @param {Snowflake} [guildId] The guild's id where the command registered, * @param {Snowflake} [guildId] The guild's id where the command registered,
* ignored when using a {@link GuildApplicationCommandManager} * ignored when using a {@link GuildApplicationCommandManager}
* @returns {Promise<ApplicationCommand>} * @returns {Promise<ApplicationCommand>}

View File

@@ -232,7 +232,7 @@ class ApplicationCommand extends Base {
/** /**
* Edits this application command. * Edits this application command.
* @param {ApplicationCommandData} data The data to update the command with * @param {Partial<ApplicationCommandData>} data The data to update the command with
* @returns {Promise<ApplicationCommand>} * @returns {Promise<ApplicationCommand>}
* @example * @example
* // Edit the description of this command * // Edit the description of this command
@@ -300,7 +300,7 @@ class ApplicationCommand extends Base {
/** /**
* Edits the default member permissions of this ApplicationCommand * Edits the default member permissions of this ApplicationCommand
* @param {PermissionResolvable} defaultMemberPermissions The default member permissions required to run this command * @param {?PermissionResolvable} defaultMemberPermissions The default member permissions required to run this command
* @returns {Promise<ApplicationCommand>} * @returns {Promise<ApplicationCommand>}
*/ */
setDefaultMemberPermissions(defaultMemberPermissions) { setDefaultMemberPermissions(defaultMemberPermissions) {

View File

@@ -328,7 +328,7 @@ export class ApplicationCommand<PermissionsFetchType = {}> extends Base {
public type: ApplicationCommandType; public type: ApplicationCommandType;
public version: Snowflake; public version: Snowflake;
public delete(): Promise<ApplicationCommand<PermissionsFetchType>>; public delete(): Promise<ApplicationCommand<PermissionsFetchType>>;
public edit(data: ApplicationCommandData): Promise<ApplicationCommand<PermissionsFetchType>>; public edit(data: Partial<ApplicationCommandData>): Promise<ApplicationCommand<PermissionsFetchType>>;
public setName(name: string): Promise<ApplicationCommand<PermissionsFetchType>>; public setName(name: string): Promise<ApplicationCommand<PermissionsFetchType>>;
public setNameLocalizations(nameLocalizations: LocalizationMap): Promise<ApplicationCommand<PermissionsFetchType>>; public setNameLocalizations(nameLocalizations: LocalizationMap): Promise<ApplicationCommand<PermissionsFetchType>>;
public setDescription(description: string): Promise<ApplicationCommand<PermissionsFetchType>>; public setDescription(description: string): Promise<ApplicationCommand<PermissionsFetchType>>;
@@ -336,7 +336,7 @@ export class ApplicationCommand<PermissionsFetchType = {}> extends Base {
descriptionLocalizations: LocalizationMap, descriptionLocalizations: LocalizationMap,
): Promise<ApplicationCommand<PermissionsFetchType>>; ): Promise<ApplicationCommand<PermissionsFetchType>>;
public setDefaultMemberPermissions( public setDefaultMemberPermissions(
defaultMemberPermissions: PermissionResolvable, defaultMemberPermissions: PermissionResolvable | null,
): Promise<ApplicationCommand<PermissionsFetchType>>; ): Promise<ApplicationCommand<PermissionsFetchType>>;
public setDMPermission(dmPermission?: boolean): Promise<ApplicationCommand<PermissionsFetchType>>; public setDMPermission(dmPermission?: boolean): Promise<ApplicationCommand<PermissionsFetchType>>;
public setOptions(options: ApplicationCommandOptionData[]): Promise<ApplicationCommand<PermissionsFetchType>>; public setOptions(options: ApplicationCommandOptionData[]): Promise<ApplicationCommand<PermissionsFetchType>>;
@@ -3188,11 +3188,11 @@ export class ApplicationCommandManager<
public delete(command: ApplicationCommandResolvable, guildId?: Snowflake): Promise<ApplicationCommandScope | null>; public delete(command: ApplicationCommandResolvable, guildId?: Snowflake): Promise<ApplicationCommandScope | null>;
public edit( public edit(
command: ApplicationCommandResolvable, command: ApplicationCommandResolvable,
data: ApplicationCommandDataResolvable, data: Partial<ApplicationCommandDataResolvable>,
): Promise<ApplicationCommandScope>; ): Promise<ApplicationCommandScope>;
public edit( public edit(
command: ApplicationCommandResolvable, command: ApplicationCommandResolvable,
data: ApplicationCommandDataResolvable, data: Partial<ApplicationCommandDataResolvable>,
guildId: Snowflake, guildId: Snowflake,
): Promise<ApplicationCommand>; ): Promise<ApplicationCommand>;
public fetch( public fetch(
@@ -3690,7 +3690,7 @@ export interface BaseApplicationCommandData {
name: string; name: string;
nameLocalizations?: LocalizationMap; nameLocalizations?: LocalizationMap;
dmPermission?: boolean; dmPermission?: boolean;
defaultMemberPermissions?: PermissionResolvable; defaultMemberPermissions?: PermissionResolvable | null;
} }
export interface AttachmentData { export interface AttachmentData {

View File

@@ -169,6 +169,11 @@ client.on('ready', async () => {
const guildCommandFromGlobal = await client.application?.commands.fetch(guildCommandId, { guildId: testGuildId }); const guildCommandFromGlobal = await client.application?.commands.fetch(guildCommandId, { guildId: testGuildId });
const guildCommandFromGuild = await client.guilds.cache.get(testGuildId)?.commands.fetch(guildCommandId); const guildCommandFromGuild = await client.guilds.cache.get(testGuildId)?.commands.fetch(guildCommandId);
await client.application?.commands.edit(globalCommandId, { defaultMemberPermissions: null });
await globalCommand?.edit({ defaultMemberPermissions: null });
await globalCommand?.setDefaultMemberPermissions(null);
await guildCommandFromGlobal?.edit({ dmPermission: false });
// @ts-expect-error // @ts-expect-error
await client.guilds.cache.get(testGuildId)?.commands.fetch(guildCommandId, { guildId: testGuildId }); await client.guilds.cache.get(testGuildId)?.commands.fetch(guildCommandId, { guildId: testGuildId });