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

View File

@ -81,6 +81,16 @@ class BaseGuildTextChannel extends GuildChannel {
this.defaultAutoArchiveDuration = data.default_auto_archive_duration; 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) { if ('messages' in data) {
for (const message of data.messages) this.messages._add(message); 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 {?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 {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 {?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 * @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) { export class BaseGuildTextChannel extends TextBasedChannelMixin(GuildChannel) {
protected constructor(guild: Guild, data?: RawGuildChannelData, client?: Client, immediatePatch?: boolean); protected constructor(guild: Guild, data?: RawGuildChannelData, client?: Client, immediatePatch?: boolean);
public defaultAutoArchiveDuration?: ThreadAutoArchiveDuration; public defaultAutoArchiveDuration?: ThreadAutoArchiveDuration;
public defaultThreadRateLimitPerUser: number | null;
public rateLimitPerUser: number | null; public rateLimitPerUser: number | null;
public nsfw: boolean; public nsfw: boolean;
public threads: GuildTextThreadManager<AllowedThreadTypeForTextChannel | AllowedThreadTypeForNewsChannel>; public threads: GuildTextThreadManager<AllowedThreadTypeForTextChannel | AllowedThreadTypeForNewsChannel>;
@ -5595,6 +5596,7 @@ export interface CategoryCreateChannelOptions {
defaultReactionEmoji?: DefaultReactionEmoji; defaultReactionEmoji?: DefaultReactionEmoji;
defaultSortOrder?: SortOrderType; defaultSortOrder?: SortOrderType;
defaultForumLayout?: ForumLayoutType; defaultForumLayout?: ForumLayoutType;
defaultThreadRateLimitPerUser?: number;
reason?: string; reason?: string;
} }