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.permission_overwrites = _data.permissionOverwrites ?
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 =>
this.client.actions.ChannelUpdate.handle(newData).updated
);

View File

@@ -36,6 +36,12 @@ class TextChannel extends GuildChannel {
* @type {?Snowflake}
*/
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
/* eslint-disable no-empty-function */
send() { }

2
typings/index.d.ts vendored
View File

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