diff --git a/packages/discord.js/src/managers/GuildChannelManager.js b/packages/discord.js/src/managers/GuildChannelManager.js index e0be3b1ee..fd520609b 100644 --- a/packages/discord.js/src/managers/GuildChannelManager.js +++ b/packages/discord.js/src/managers/GuildChannelManager.js @@ -13,7 +13,6 @@ const Webhook = require('../structures/Webhook'); const { ThreadChannelTypes } = require('../util/Constants'); const DataResolver = require('../util/DataResolver'); const Util = require('../util/Util'); -const { resolveAutoArchiveMaxLimit } = require('../util/Util'); let cacheWarningEmitted = false; @@ -253,9 +252,6 @@ class GuildChannelManager extends CachedManager { } } - let defaultAutoArchiveDuration = data.defaultAutoArchiveDuration; - if (defaultAutoArchiveDuration === 'MAX') defaultAutoArchiveDuration = resolveAutoArchiveMaxLimit(this.guild); - const newData = await this.client.rest.patch(Routes.channel(channel.id), { body: { name: (data.name ?? channel.name).trim(), @@ -269,7 +265,7 @@ class GuildChannelManager extends CachedManager { parent_id: parent, lock_permissions: data.lockPermissions, rate_limit_per_user: data.rateLimitPerUser, - default_auto_archive_duration: defaultAutoArchiveDuration, + default_auto_archive_duration: data.defaultAutoArchiveDuration, permission_overwrites, }, reason, diff --git a/packages/discord.js/src/managers/ThreadManager.js b/packages/discord.js/src/managers/ThreadManager.js index e957f2ff3..31e27c71b 100644 --- a/packages/discord.js/src/managers/ThreadManager.js +++ b/packages/discord.js/src/managers/ThreadManager.js @@ -6,7 +6,6 @@ const { ChannelType, Routes } = require('discord-api-types/v10'); const CachedManager = require('./CachedManager'); const { TypeError } = require('../errors'); const ThreadChannel = require('../structures/ThreadChannel'); -const { resolveAutoArchiveMaxLimit } = require('../util/Util'); /** * Manages API methods for {@link ThreadChannel} objects and stores their cache. @@ -122,8 +121,6 @@ class ThreadManager extends CachedManager { resolvedType = type ?? resolvedType; } - if (autoArchiveDuration === 'MAX') autoArchiveDuration = resolveAutoArchiveMaxLimit(this.channel.guild); - const data = await this.client.rest.post(Routes.threads(this.channel.id, startMessageId), { body: { name, diff --git a/packages/discord.js/src/structures/Message.js b/packages/discord.js/src/structures/Message.js index f2fffb948..bec13b28c 100644 --- a/packages/discord.js/src/structures/Message.js +++ b/packages/discord.js/src/structures/Message.js @@ -797,9 +797,8 @@ class Message extends Base { * archived. This can be: * * `60` (1 hour) * * `1440` (1 day) - * * `4320` (3 days) This is only available when the guild has the `THREE_DAY_THREAD_ARCHIVE` feature. - * * `10080` (7 days) This is only available when the guild has the `SEVEN_DAY_THREAD_ARCHIVE` feature. - * * `'MAX'` Based on the guild's features + * * `4320` (3 days) + * * `10080` (7 days) * @typedef {number|string} ThreadAutoArchiveDuration */ diff --git a/packages/discord.js/src/structures/ThreadChannel.js b/packages/discord.js/src/structures/ThreadChannel.js index 81146ad3e..5a36c38bb 100644 --- a/packages/discord.js/src/structures/ThreadChannel.js +++ b/packages/discord.js/src/structures/ThreadChannel.js @@ -6,7 +6,6 @@ const TextBasedChannel = require('./interfaces/TextBasedChannel'); const { RangeError } = require('../errors'); const MessageManager = require('../managers/MessageManager'); const ThreadMemberManager = require('../managers/ThreadMemberManager'); -const { resolveAutoArchiveMaxLimit } = require('../util/Util'); /** * Represents a thread channel on Discord. @@ -313,14 +312,11 @@ class ThreadChannel extends Channel { * .catch(console.error); */ async edit(data, reason) { - let autoArchiveDuration = data.autoArchiveDuration; - if (autoArchiveDuration === 'MAX') autoArchiveDuration = resolveAutoArchiveMaxLimit(this.guild); - const newData = await this.client.rest.patch(Routes.channel(this.id), { body: { name: (data.name ?? this.name).trim(), archived: data.archived, - auto_archive_duration: autoArchiveDuration, + auto_archive_duration: data.autoArchiveDuration, rate_limit_per_user: data.rateLimitPerUser, locked: data.locked, invitable: this.type === ChannelType.GuildPrivateThread ? data.invitable : undefined, diff --git a/packages/discord.js/src/util/Util.js b/packages/discord.js/src/util/Util.js index 0d1da9962..a16cdbea6 100644 --- a/packages/discord.js/src/util/Util.js +++ b/packages/discord.js/src/util/Util.js @@ -2,7 +2,7 @@ const { parse } = require('node:path'); const { Collection } = require('@discordjs/collection'); -const { ChannelType, RouteBases, Routes, GuildFeature } = require('discord-api-types/v10'); +const { ChannelType, RouteBases, Routes } = require('discord-api-types/v10'); const { fetch } = require('undici'); const Colors = require('./Colors'); const { Error: DiscordError, RangeError, TypeError } = require('../errors'); @@ -521,17 +521,6 @@ class Util extends null { static cleanCodeBlockContent(text) { return text.replaceAll('```', '`\u200b``'); } - - /** - * Resolves the maximum time a guild's thread channels should automatcally archive in case of no recent activity. - * @param {Guild} guild The guild to resolve this limit from. - * @returns {number} - */ - static resolveAutoArchiveMaxLimit({ features }) { - if (features.includes(GuildFeature.SevenDayThreadArchive)) return 10080; - if (features.includes(GuildFeature.ThreeDayThreadArchive)) return 4320; - return 1440; - } } module.exports = Util; diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 6fea87940..dc6c0e67b 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -500,7 +500,7 @@ export class BaseGuildTextChannel extends TextBasedChannelMixin(GuildChannel) { public createInvite(options?: CreateInviteOptions): Promise; public fetchInvites(cache?: boolean): Promise>; public setDefaultAutoArchiveDuration( - defaultAutoArchiveDuration: ThreadAutoArchiveDuration | 'MAX', + defaultAutoArchiveDuration: ThreadAutoArchiveDuration, reason?: string, ): Promise; public setNSFW(nsfw?: boolean, reason?: string): Promise; @@ -2453,7 +2453,7 @@ export class ThreadChannel extends TextBasedChannelMixin(Channel, ['fetchWebhook public fetchStarterMessage(options?: BaseFetchOptions): Promise; public setArchived(archived?: boolean, reason?: string): Promise; public setAutoArchiveDuration( - autoArchiveDuration: ThreadAutoArchiveDuration | 'MAX', + autoArchiveDuration: ThreadAutoArchiveDuration, reason?: string, ): Promise; public setInvitable(invitable?: boolean, reason?: string): Promise; @@ -2582,7 +2582,6 @@ export class Util extends null { route: string, reason?: string, ): Promise<{ id: Snowflake; position: number }[]>; - public static resolveAutoArchiveMaxLimit(guild: Guild): Exclude; } export class Components extends null { @@ -3749,7 +3748,7 @@ export interface ChannelData { rateLimitPerUser?: number; lockPermissions?: boolean; permissionOverwrites?: readonly OverwriteResolvable[] | Collection; - defaultAutoArchiveDuration?: ThreadAutoArchiveDuration | 'MAX'; + defaultAutoArchiveDuration?: ThreadAutoArchiveDuration; rtcRegion?: string | null; videoQualityMode?: VideoQualityMode | null; } @@ -5122,7 +5121,7 @@ export type StageInstanceResolvable = StageInstance | Snowflake; export interface StartThreadOptions { name: string; - autoArchiveDuration?: ThreadAutoArchiveDuration | 'MAX'; + autoArchiveDuration?: ThreadAutoArchiveDuration; reason?: string; rateLimitPerUser?: number; } @@ -5230,7 +5229,7 @@ export interface ThreadCreateOptions extends StartThreadOptio export interface ThreadEditData { name?: string; archived?: boolean; - autoArchiveDuration?: ThreadAutoArchiveDuration | 'MAX'; + autoArchiveDuration?: ThreadAutoArchiveDuration; rateLimitPerUser?: number; locked?: boolean; invitable?: boolean;