Skip to content

Commit

Permalink
feat(Guild): setChannelPositions parent, lockPermissions keys (#5507)
Browse files Browse the repository at this point in the history
Co-authored-by: Antonio Román <kyradiscord@gmail.com>
  • Loading branch information
almostSouji and kyranet committed Apr 30, 2021
1 parent a5d41c9 commit 4866e26
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
14 changes: 13 additions & 1 deletion src/structures/Guild.js
Expand Up @@ -1272,15 +1272,25 @@ class Guild extends Base {
return this.edit({ preferredLocale }, reason);
}

/**
* Data that can be resolved to give a Category Channel object. This can be:
* * A CategoryChannel object
* * A Snowflake
* @typedef {CategoryChannel|Snowflake} CategoryChannelResolvable
*/

/**
* The data needed for updating a channel's position.
* @typedef {Object} ChannelPosition
* @property {ChannelResolvable} channel Channel to update
* @property {number} position New position for the channel
* @property {number} [position] New position for the channel
* @property {CategoryChannelResolvable} [parent] Parent channel for this channel
* @property {boolean} [lockPermissions] If the overwrites should be locked to the parents overwrites
*/

/**
* Batch-updates the guild's channels' positions.
* <info>Only one channel's parent can be changed at a time</info>
* @param {ChannelPosition[]} channelPositions Channel positions to update
* @returns {Promise<Guild>}
* @example
Expand All @@ -1292,6 +1302,8 @@ class Guild extends Base {
const updatedChannels = channelPositions.map(r => ({
id: this.client.channels.resolveID(r.channel),
position: r.position,
lock_permissions: r.lockPermissions,
parent_id: this.channels.resolveID(r.parent),
}));

return this.client.api
Expand Down
6 changes: 5 additions & 1 deletion typings/index.d.ts
Expand Up @@ -220,6 +220,8 @@ declare module 'discord.js' {
public type: 'category';
}

type CategoryChannelResolvable = Snowflake | CategoryChannel;

export class Channel extends Base {
constructor(client: Client, data?: object);
public readonly createdAt: Date;
Expand Down Expand Up @@ -2358,7 +2360,9 @@ declare module 'discord.js' {

interface ChannelPosition {
channel: ChannelResolvable;
position: number;
lockPermissions?: boolean;
parent?: CategoryChannelResolvable;
position?: number;
}

type ChannelResolvable = Channel | Snowflake;
Expand Down

0 comments on commit 4866e26

Please sign in to comment.