Skip to content

Commit

Permalink
feat(GuildChannelManager): allow editing flags (#8637)
Browse files Browse the repository at this point in the history
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
  • Loading branch information
almeidx and kodiakhq[bot] committed Sep 21, 2022
1 parent 30ceaf7 commit abb7226
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 0 deletions.
3 changes: 3 additions & 0 deletions packages/discord.js/src/managers/GuildChannelManager.js
Expand Up @@ -10,6 +10,7 @@ const GuildChannel = require('../structures/GuildChannel');
const PermissionOverwrites = require('../structures/PermissionOverwrites');
const ThreadChannel = require('../structures/ThreadChannel');
const Webhook = require('../structures/Webhook');
const ChannelFlagsBitField = require('../util/ChannelFlagsBitField');
const { transformGuildForumTag, transformGuildDefaultReaction } = require('../util/Channels');
const { ThreadChannelTypes } = require('../util/Constants');
const DataResolver = require('../util/DataResolver');
Expand Down Expand Up @@ -226,6 +227,7 @@ class GuildChannelManager extends CachedManager {
* @property {GuildForumTagData[]} [availableTags] The tags to set as available in a forum channel
* @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 {ChannelFlagsResolvable} [flags] The flags to set on the channel
* @property {string} [reason] Reason for editing this channel
*/

Expand Down Expand Up @@ -285,6 +287,7 @@ class GuildChannelManager extends CachedManager {
available_tags: data.availableTags?.map(availableTag => transformGuildForumTag(availableTag)),
default_reaction_emoji: data.defaultReactionEmoji && transformGuildDefaultReaction(data.defaultReactionEmoji),
default_thread_rate_limit_per_user: data.defaultThreadRateLimitPerUser,
tags: 'flags' in data ? ChannelFlagsBitField.resolve(data.flags) : undefined,
},
reason: data.reason,
});
Expand Down
9 changes: 9 additions & 0 deletions packages/discord.js/src/util/ChannelFlagsBitField.js
Expand Up @@ -29,4 +29,13 @@ class ChannelFlagsBitField extends BitField {
* @name ChannelFlagsBitField#bitfield
*/

/**
* Data that can be resolved to give a channel flag bitfield. This can be:
* * A string (see {@link ChannelFlagsBitField.Flags})
* * A channel flag
* * An instance of ChannelFlagsBitField
* * An Array of ChannelFlagsResolvable
* @typedef {string|number|ChannelFlagsBitField|ChannelFlagsResolvable[]} ChannelFlagsResolvable
*/

module.exports = ChannelFlagsBitField;
3 changes: 3 additions & 0 deletions packages/discord.js/typings/index.d.ts
Expand Up @@ -729,6 +729,8 @@ export type CategoryChannelResolvable = Snowflake | CategoryChannel;

export type ChannelFlagsString = keyof typeof ChannelFlags;

export type ChannelFlagsResolvable = BitFieldResolvable<ChannelFlagsString, number>;

export class ChannelFlagsBitField extends BitField<ChannelFlagsString> {
public static Flags: typeof ChannelFlags;
public static resolve(bit?: BitFieldResolvable<ChannelFlagsString, ChannelFlags>): number;
Expand Down Expand Up @@ -4902,6 +4904,7 @@ export interface GuildChannelEditOptions {
availableTags?: GuildForumTagData[];
defaultReactionEmoji?: DefaultReactionEmoji | null;
defaultThreadRateLimitPerUser?: number;
tags?: ChannelFlagsResolvable;
reason?: string;
}

Expand Down

0 comments on commit abb7226

Please sign in to comment.