diff --git a/src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs b/src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs
index 992bd71fc..12874f2c2 100644
--- a/src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs
+++ b/src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs
@@ -21,6 +21,17 @@ namespace Discord
///
int Position { get; }
+ ///
+ /// Gets the flags related to this channel.
+ ///
+ ///
+ /// This value is determined by bitwise OR-ing values together.
+ ///
+ ///
+ /// A channel's flags, if any is associated.
+ ///
+ ChannelFlags Flags { get; }
+
///
/// Gets the guild associated with this channel.
///
diff --git a/src/Discord.Net.Rest/API/Common/Channel.cs b/src/Discord.Net.Rest/API/Common/Channel.cs
index 00a325b1b..2cd3b13a9 100644
--- a/src/Discord.Net.Rest/API/Common/Channel.cs
+++ b/src/Discord.Net.Rest/API/Common/Channel.cs
@@ -79,5 +79,8 @@ namespace Discord.API
[JsonProperty("default_thread_rate_limit_per_user")]
public Optional ThreadRateLimitPerUser { get; set; }
+
+ [JsonProperty("flags")]
+ public Optional Flags { get; set; }
}
}
diff --git a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs
index 4f9af0335..a6c9c3674 100644
--- a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs
+++ b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs
@@ -26,6 +26,9 @@ namespace Discord.Rest
///
public ulong GuildId => Guild.Id;
+ ///
+ public ChannelFlags Flags { get; private set; }
+
internal RestGuildChannel(BaseDiscordClient discord, IGuild guild, ulong id)
: base(discord, id)
{
@@ -62,6 +65,8 @@ namespace Discord.Rest
newOverwrites.Add(overwrites[i].ToEntity());
_overwrites = newOverwrites.ToImmutable();
}
+
+ Flags = model.Flags.GetValueOrDefault(ChannelFlags.None);
}
///
diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs
index 808982785..0811f2238 100644
--- a/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs
+++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs
@@ -30,6 +30,9 @@ namespace Discord.WebSocket
///
public int Position { get; private set; }
+ ///
+ public ChannelFlags Flags { get; private set; }
+
///
public virtual IReadOnlyCollection PermissionOverwrites => _overwrites;
///
@@ -74,6 +77,8 @@ namespace Discord.WebSocket
for (int i = 0; i < overwrites.Length; i++)
newOverwrites.Add(overwrites[i].ToEntity());
_overwrites = newOverwrites.ToImmutable();
+
+ Flags = model.Flags.GetValueOrDefault(ChannelFlags.None);
}
///
diff --git a/test/Discord.Net.Tests.Unit/MockedEntities/MockedCategoryChannel.cs b/test/Discord.Net.Tests.Unit/MockedEntities/MockedCategoryChannel.cs
index 712570467..08d3c740a 100644
--- a/test/Discord.Net.Tests.Unit/MockedEntities/MockedCategoryChannel.cs
+++ b/test/Discord.Net.Tests.Unit/MockedEntities/MockedCategoryChannel.cs
@@ -20,6 +20,8 @@ namespace Discord
public DateTimeOffset CreatedAt => throw new NotImplementedException();
public ulong Id => throw new NotImplementedException();
+
+ public ChannelFlags Flags => throw new NotImplementedException();
public Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options = null)
{
diff --git a/test/Discord.Net.Tests.Unit/MockedEntities/MockedTextChannel.cs b/test/Discord.Net.Tests.Unit/MockedEntities/MockedTextChannel.cs
index ab1d3e534..8913c127d 100644
--- a/test/Discord.Net.Tests.Unit/MockedEntities/MockedTextChannel.cs
+++ b/test/Discord.Net.Tests.Unit/MockedEntities/MockedTextChannel.cs
@@ -34,6 +34,8 @@ namespace Discord
public ulong Id => throw new NotImplementedException();
+ public ChannelFlags Flags => throw new NotImplementedException();
+
public Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options = null)
{
throw new NotImplementedException();
diff --git a/test/Discord.Net.Tests.Unit/MockedEntities/MockedVoiceChannel.cs b/test/Discord.Net.Tests.Unit/MockedEntities/MockedVoiceChannel.cs
index 2ffc75a24..3f167ba5f 100644
--- a/test/Discord.Net.Tests.Unit/MockedEntities/MockedVoiceChannel.cs
+++ b/test/Discord.Net.Tests.Unit/MockedEntities/MockedVoiceChannel.cs
@@ -36,6 +36,8 @@ namespace Discord
public string Mention => throw new NotImplementedException();
+ public ChannelFlags Flags => throw new NotImplementedException();
+
public Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options = null) => throw new NotImplementedException();
public Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions permissions, RequestOptions options = null) => throw new NotImplementedException();
public Task ConnectAsync(bool selfDeaf = false, bool selfMute = false, bool external = false) => throw new NotImplementedException();