backport: rateLimitPerUser (#2874)

This commit is contained in:
Isabella
2018-10-03 17:21:26 -05:00
committed by GitHub
parent e0f522a745
commit 1e85887229
3 changed files with 20 additions and 0 deletions

View File

@@ -331,6 +331,8 @@ class RESTMethods {
data.parent_id = _data.parent; data.parent_id = _data.parent;
data.permission_overwrites = _data.permissionOverwrites ? data.permission_overwrites = _data.permissionOverwrites ?
resolvePermissions.call(this, _data.permissionOverwrites, channel.guild) : undefined; resolvePermissions.call(this, _data.permissionOverwrites, channel.guild) : undefined;
data.rate_limit_per_user = typeof _data.rateLimitPerUser !== 'undefined' ?
_data.rateLimitPerUser : channel.rateLimitPerUser;
return this.rest.makeRequest('patch', Endpoints.Channel(channel), true, data, undefined, reason).then(newData => return this.rest.makeRequest('patch', Endpoints.Channel(channel), true, data, undefined, reason).then(newData =>
this.client.actions.ChannelUpdate.handle(newData).updated this.client.actions.ChannelUpdate.handle(newData).updated
); );

View File

@@ -36,6 +36,12 @@ class TextChannel extends GuildChannel {
* @type {?Snowflake} * @type {?Snowflake}
*/ */
this.lastMessageID = data.last_message_id; this.lastMessageID = data.last_message_id;
/**
* The ratelimit per user for this channel
* @type {number}
*/
this.rateLimitPerUser = data.rate_limit_per_user || 0;
} }
/** /**
@@ -97,6 +103,16 @@ class TextChannel extends GuildChannel {
} }
} }
/**
* Sets the rate limit per user for this channel.
* @param {number} rateLimitPerUser The new ratelimit
* @param {string} [reason] Reason for changing the channel's ratelimits
* @returns {Promise<TextChannel>}
*/
setRateLimitPerUser(rateLimitPerUser, reason) {
return this.edit({ rateLimitPerUser }, reason);
}
// These are here only for documentation purposes - they are implemented by TextBasedChannel // These are here only for documentation purposes - they are implemented by TextBasedChannel
/* eslint-disable no-empty-function */ /* eslint-disable no-empty-function */
send() { } send() { }

2
typings/index.d.ts vendored
View File

@@ -1201,6 +1201,7 @@ declare module 'discord.js' {
public messages: Collection<Snowflake, Message>; public messages: Collection<Snowflake, Message>;
public nsfw: boolean; public nsfw: boolean;
public topic: string; public topic: string;
public setRateLimitPerUser(rateLimitPerUser: number, reason?: string): Promise<TextChannel>;
public createWebhook(name: string, avatar: BufferResolvable, reason?: string): Promise<Webhook>; public createWebhook(name: string, avatar: BufferResolvable, reason?: string): Promise<Webhook>;
public fetchWebhooks(): Promise<Collection<Snowflake, Webhook>>; public fetchWebhooks(): Promise<Collection<Snowflake, Webhook>>;
public setNSFW(nsfw: boolean, reason: string): Promise<this>; public setNSFW(nsfw: boolean, reason: string): Promise<this>;
@@ -1619,6 +1620,7 @@ declare module 'discord.js' {
nsfw?: boolean; nsfw?: boolean;
bitrate?: number; bitrate?: number;
userLimit?: number; userLimit?: number;
rateLimitPerUser?: number;
}; };
type ChannelLogsQueryOptions = { type ChannelLogsQueryOptions = {