feat(Threads): max autoArchiveDuration option (#6304)

Co-authored-by: Noel <buechler.noel@outlook.com>
This commit is contained in:
Papageorgiadis Savvas
2021-08-07 23:19:29 +03:00
committed by GitHub
parent d87299ba20
commit 394d48649f
3 changed files with 21 additions and 3 deletions

View File

@@ -66,7 +66,8 @@ class ThreadManager extends CachedManager {
* * `1440` (1 day)
* * `4320` (3 days) <warn>This is only available when the guild has the `THREE_DAY_THREAD_ARCHIVE` feature.</warn>
* * `10080` (7 days) <warn>This is only available when the guild has the `SEVEN_DAY_THREAD_ARCHIVE` feature.</warn>
* @typedef {number} ThreadAutoArchiveDuration
* * `'MAX'` Based on the guilds boost count
* @typedef {number|string} ThreadAutoArchiveDuration
*/
/**
@@ -119,6 +120,14 @@ class ThreadManager extends CachedManager {
} else if (this.channel.type !== 'GUILD_NEWS') {
resolvedType = typeof type === 'string' ? ChannelTypes[type] : type ?? resolvedType;
}
if (autoArchiveDuration === 'MAX') {
autoArchiveDuration = 1440;
if (this.channel.guild.features.includes('SEVEN_DAY_THREAD_ARCHIVE')) {
autoArchiveDuration = 10080;
} else if (this.channel.guild.features.includes('THREE_DAY_THREAD_ARCHIVE')) {
autoArchiveDuration = 4320;
}
}
const data = await path.threads.post({
data: {

View File

@@ -276,11 +276,20 @@ class ThreadChannel extends Channel {
* .catch(console.error);
*/
async edit(data, reason) {
let autoArchiveDuration = data.autoArchiveDuration;
if (data.autoArchiveDuration === 'MAX') {
autoArchiveDuration = 1440;
if (this.guild.features.includes('SEVEN_DAY_THREAD_ARCHIVE')) {
autoArchiveDuration = 10080;
} else if (this.guild.features.includes('THREE_DAY_THREAD_ARCHIVE')) {
autoArchiveDuration = 4320;
}
}
const newData = await this.client.api.channels(this.id).patch({
data: {
name: (data.name ?? this.name).trim(),
archived: data.archived,
auto_archive_duration: data.autoArchiveDuration,
auto_archive_duration: autoArchiveDuration,
rate_limit_per_user: data.rateLimitPerUser,
locked: data.locked,
},

2
typings/index.d.ts vendored
View File

@@ -4430,7 +4430,7 @@ export type TextBasedChannelTypes = TextBasedChannels['type'];
export type TextChannelResolvable = Snowflake | TextChannel;
export type ThreadAutoArchiveDuration = 60 | 1440 | 4320 | 10080;
export type ThreadAutoArchiveDuration = 60 | 1440 | 4320 | 10080 | 'MAX';
export type ThreadChannelResolvable = ThreadChannel | Snowflake;