Browse Source

Add `Flags` property to channels

pull/2469/head
Misha133 2 years ago
parent
commit
8c05d499a1
7 changed files with 30 additions and 0 deletions
  1. +11
    -0
      src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs
  2. +3
    -0
      src/Discord.Net.Rest/API/Common/Channel.cs
  3. +5
    -0
      src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs
  4. +5
    -0
      src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs
  5. +2
    -0
      test/Discord.Net.Tests.Unit/MockedEntities/MockedCategoryChannel.cs
  6. +2
    -0
      test/Discord.Net.Tests.Unit/MockedEntities/MockedTextChannel.cs
  7. +2
    -0
      test/Discord.Net.Tests.Unit/MockedEntities/MockedVoiceChannel.cs

+ 11
- 0
src/Discord.Net.Core/Entities/Channels/IGuildChannel.cs View File

@@ -21,6 +21,17 @@ namespace Discord
/// </returns>
int Position { get; }

/// <summary>
/// Gets the flags related to this channel.
/// </summary>
/// <remarks>
/// This value is determined by bitwise OR-ing <see cref="ChannelFlags"/> values together.
/// </remarks>
/// <returns>
/// A channel's flags, if any is associated.
/// </returns>
ChannelFlags Flags { get; }

/// <summary>
/// Gets the guild associated with this channel.
/// </summary>


+ 3
- 0
src/Discord.Net.Rest/API/Common/Channel.cs View File

@@ -79,5 +79,8 @@ namespace Discord.API

[JsonProperty("default_thread_rate_limit_per_user")]
public Optional<int> ThreadRateLimitPerUser { get; set; }

[JsonProperty("flags")]
public Optional<ChannelFlags> Flags { get; set; }
}
}

+ 5
- 0
src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs View File

@@ -26,6 +26,9 @@ namespace Discord.Rest
/// <inheritdoc />
public ulong GuildId => Guild.Id;

/// <inheritdoc />
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);
}

/// <inheritdoc />


+ 5
- 0
src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs View File

@@ -30,6 +30,9 @@ namespace Discord.WebSocket
/// <inheritdoc />
public int Position { get; private set; }

/// <inheritdoc />
public ChannelFlags Flags { get; private set; }

/// <inheritdoc />
public virtual IReadOnlyCollection<Overwrite> PermissionOverwrites => _overwrites;
/// <summary>
@@ -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);
}

/// <inheritdoc />


+ 2
- 0
test/Discord.Net.Tests.Unit/MockedEntities/MockedCategoryChannel.cs View File

@@ -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)
{


+ 2
- 0
test/Discord.Net.Tests.Unit/MockedEntities/MockedTextChannel.cs View File

@@ -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();


+ 2
- 0
test/Discord.Net.Tests.Unit/MockedEntities/MockedVoiceChannel.cs View File

@@ -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<IAudioClient> ConnectAsync(bool selfDeaf = false, bool selfMute = false, bool external = false) => throw new NotImplementedException();


Loading…
Cancel
Save