feat: support default_thread_rate_limit_per_user in channel creation

#9339 djs
This commit is contained in:
Elysia 2023-10-29 13:16:41 +07:00
parent 5cdebb2889
commit 58f7e5299b
4 changed files with 16 additions and 0 deletions

View File

@ -150,6 +150,7 @@ class GuildChannelManager extends CachedManager {
defaultReactionEmoji,
defaultSortOrder,
defaultForumLayout,
defaultThreadRateLimitPerUser,
reason,
} = {},
) {
@ -191,6 +192,7 @@ class GuildChannelManager extends CachedManager {
default_reaction_emoji: defaultReactionEmoji && transformGuildDefaultReaction(defaultReactionEmoji),
default_sort_order: sortMode,
default_forum_layout: layoutMode,
default_thread_rate_limit_per_user: defaultThreadRateLimitPerUser,
},
reason,
});

View File

@ -81,6 +81,16 @@ class BaseGuildTextChannel extends GuildChannel {
this.defaultAutoArchiveDuration = data.default_auto_archive_duration;
}
if ('default_thread_rate_limit_per_user' in data) {
/**
* The initial rate limit per user (slowmode) to set on newly created threads in a channel.
* @type {?number}
*/
this.defaultThreadRateLimitPerUser = data.default_thread_rate_limit_per_user;
} else {
this.defaultThreadRateLimitPerUser ??= null;
}
if ('messages' in data) {
for (const message of data.messages) this.messages._add(message);
}

View File

@ -62,6 +62,8 @@ class CategoryChannel extends GuildChannel {
* @property {?DefaultReactionEmoji} [defaultReactionEmoji] The emoji to set as the default reaction emoji
* @property {number} [defaultThreadRateLimitPerUser] The rate limit per user (slowmode) to set on forum posts
* @property {?SortOrderType} [defaultSortOrder] The default sort order mode to set on the new channel
* @property {number} [defaultThreadRateLimitPerUser] The initial rate limit per user (slowmode)
* to set on newly created threads in a channel.
* @property {string} [reason] Reason for creating the new channel
*/

2
typings/index.d.ts vendored
View File

@ -768,6 +768,7 @@ export class BaseGuildEmoji extends Emoji {
export class BaseGuildTextChannel extends TextBasedChannelMixin(GuildChannel) {
protected constructor(guild: Guild, data?: RawGuildChannelData, client?: Client, immediatePatch?: boolean);
public defaultAutoArchiveDuration?: ThreadAutoArchiveDuration;
public defaultThreadRateLimitPerUser: number | null;
public rateLimitPerUser: number | null;
public nsfw: boolean;
public threads: GuildTextThreadManager<AllowedThreadTypeForTextChannel | AllowedThreadTypeForNewsChannel>;
@ -5595,6 +5596,7 @@ export interface CategoryCreateChannelOptions {
defaultReactionEmoji?: DefaultReactionEmoji;
defaultSortOrder?: SortOrderType;
defaultForumLayout?: ForumLayoutType;
defaultThreadRateLimitPerUser?: number;
reason?: string;
}