diff --git a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs index e349196a7..fdfee39ea 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs @@ -15,7 +15,7 @@ namespace Discord.Rest private ImmutableArray _overwrites; /// - public IReadOnlyCollection PermissionOverwrites => _overwrites; + public virtual IReadOnlyCollection PermissionOverwrites => _overwrites; internal IGuild Guild { get; } /// @@ -81,7 +81,7 @@ namespace Discord.Rest /// /// An overwrite object for the targeted user; null if none is set. /// - public OverwritePermissions? GetPermissionOverwrite(IUser user) + public virtual OverwritePermissions? GetPermissionOverwrite(IUser user) { for (int i = 0; i < _overwrites.Length; i++) { @@ -98,7 +98,7 @@ namespace Discord.Rest /// /// An overwrite object for the targeted role; null if none is set. /// - public OverwritePermissions? GetPermissionOverwrite(IRole role) + public virtual OverwritePermissions? GetPermissionOverwrite(IRole role) { for (int i = 0; i < _overwrites.Length; i++) { @@ -117,7 +117,7 @@ namespace Discord.Rest /// /// A task representing the asynchronous permission operation for adding the specified permissions to the channel. /// - public async Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions permissions, RequestOptions options = null) + public virtual async Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions permissions, RequestOptions options = null) { await ChannelHelper.AddPermissionOverwriteAsync(this, Discord, user, permissions, options).ConfigureAwait(false); _overwrites = _overwrites.Add(new Overwrite(user.Id, PermissionTarget.User, new OverwritePermissions(permissions.AllowValue, permissions.DenyValue))); @@ -131,7 +131,7 @@ namespace Discord.Rest /// /// A task representing the asynchronous permission operation for adding the specified permissions to the channel. /// - public async Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options = null) + public virtual async Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options = null) { await ChannelHelper.AddPermissionOverwriteAsync(this, Discord, role, permissions, options).ConfigureAwait(false); _overwrites = _overwrites.Add(new Overwrite(role.Id, PermissionTarget.Role, new OverwritePermissions(permissions.AllowValue, permissions.DenyValue))); @@ -145,7 +145,7 @@ namespace Discord.Rest /// /// A task representing the asynchronous operation for removing the specified permissions from the channel. /// - public async Task RemovePermissionOverwriteAsync(IUser user, RequestOptions options = null) + public virtual async Task RemovePermissionOverwriteAsync(IUser user, RequestOptions options = null) { await ChannelHelper.RemovePermissionOverwriteAsync(this, Discord, user, options).ConfigureAwait(false); @@ -166,7 +166,7 @@ namespace Discord.Rest /// /// A task representing the asynchronous operation for removing the specified permissions from the channel. /// - public async Task RemovePermissionOverwriteAsync(IRole role, RequestOptions options = null) + public virtual async Task RemovePermissionOverwriteAsync(IRole role, RequestOptions options = null) { await ChannelHelper.RemovePermissionOverwriteAsync(this, Discord, role, options).ConfigureAwait(false); diff --git a/src/Discord.Net.Rest/Entities/Channels/RestNewsChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestNewsChannel.cs index 82f96e923..f4984a0d2 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestNewsChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestNewsChannel.cs @@ -24,5 +24,30 @@ namespace Discord.Rest entity.Update(model); return entity; } + public override int SlowModeInterval => throw new NotSupportedException("News channels do not support Slow Mode."); + public override Task AddPermissionOverwriteAsync(IRole role, OverwritePermissions permissions, RequestOptions options = null) + { + throw new NotSupportedException("News channels do not support Overwrite Permissions."); + } + public override Task AddPermissionOverwriteAsync(IUser user, OverwritePermissions permissions, RequestOptions options = null) + { + throw new NotSupportedException("News channels do not support Overwrite Permissions."); + } + public override OverwritePermissions? GetPermissionOverwrite(IRole role) + { + throw new NotSupportedException("News channels do not support Overwrite Permissions."); + } + public override OverwritePermissions? GetPermissionOverwrite(IUser user) + { + throw new NotSupportedException("News channels do not support Overwrite Permissions."); + } + public override Task RemovePermissionOverwriteAsync(IRole role, RequestOptions options = null) + { + throw new NotSupportedException("News channels do not support Overwrite Permissions."); + } + public override Task RemovePermissionOverwriteAsync(IUser user, RequestOptions options = null) + { + throw new NotSupportedException("News channels do not support Overwrite Permissions."); + } } } diff --git a/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs index e95b6e877..78bc7393f 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs @@ -17,7 +17,7 @@ namespace Discord.Rest /// public string Topic { get; private set; } /// - public int SlowModeInterval { get; private set; } + public virtual int SlowModeInterval { get; private set; } /// public ulong? CategoryId { get; private set; }