From 03fb5b0a2f45275dec7885175ad691a1d9c449c4 Mon Sep 17 00:00:00 2001 From: advaith Date: Thu, 8 Sep 2022 06:15:01 -0700 Subject: [PATCH] feat(GuildBanManager#create): add `deleteMessageSeconds` (#8326) * feat(GuildBanManager#create): add `deleteMessageSeconds` * Apply suggestions from code review Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> * chore: remove typeof and return undefined if neither are set Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- packages/discord.js/src/managers/GuildBanManager.js | 9 ++++++++- packages/discord.js/src/structures/GuildMember.js | 4 ++-- packages/discord.js/typings/index.d.ts | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/discord.js/src/managers/GuildBanManager.js b/packages/discord.js/src/managers/GuildBanManager.js index 4308604921bf..426dc65f1857 100644 --- a/packages/discord.js/src/managers/GuildBanManager.js +++ b/packages/discord.js/src/managers/GuildBanManager.js @@ -129,6 +129,9 @@ class GuildBanManager extends CachedManager { * Options used to ban a user from a guild. * @typedef {Object} BanOptions * @property {number} [deleteMessageDays] Number of days of messages to delete, must be between 0 and 7, inclusive + * This property is deprecated. Use `deleteMessageSeconds` instead. + * @property {number} [deleteMessageSeconds] Number of seconds of messages to delete, + * must be between 0 and 604800 (7 days), inclusive * @property {string} [reason] The reason for the ban */ @@ -150,7 +153,11 @@ class GuildBanManager extends CachedManager { const id = this.client.users.resolveId(user); if (!id) throw new Error(ErrorCodes.BanResolveId, true); await this.client.rest.put(Routes.guildBan(this.guild.id, id), { - body: { delete_message_days: options.deleteMessageDays }, + body: { + delete_message_seconds: + options.deleteMessageSeconds ?? + (options.deleteMessageDays ? options.deleteMessageDays * 24 * 60 * 60 : undefined), + }, reason: options.reason, }); if (user instanceof GuildMember) return user; diff --git a/packages/discord.js/src/structures/GuildMember.js b/packages/discord.js/src/structures/GuildMember.js index c9002ddd4f82..bbb32a2c02f2 100644 --- a/packages/discord.js/src/structures/GuildMember.js +++ b/packages/discord.js/src/structures/GuildMember.js @@ -355,8 +355,8 @@ class GuildMember extends Base { * @param {BanOptions} [options] Options for the ban * @returns {Promise} * @example - * // ban a guild member - * guildMember.ban({ deleteMessageDays: 7, reason: 'They deserved it' }) + * // Ban a guild member, deleting a week's worth of messages + * guildMember.ban({ deleteMessageSeconds: 60 * 60 * 24 * 7, reason: 'They deserved it' }) * .then(console.log) * .catch(console.error); */ diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index ea03e53d3a71..f10619348960 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -4057,7 +4057,9 @@ export interface AwaitReactionsOptions extends ReactionCollectorOptions { } export interface BanOptions { + /** @deprecated Use {@link deleteMessageSeconds} instead. */ deleteMessageDays?: number; + deleteMessageSeconds?: number; reason?: string; }