From 00f2a08bcbcc6218c780bc99ed85f94e1e874214 Mon Sep 17 00:00:00 2001 From: Hsu Still <341464@gmail.com> Date: Wed, 4 Apr 2018 12:38:34 +0800 Subject: [PATCH] Remove unnecessary call for REST if user didn't specify the bool --- .../Entities/Channels/ChannelHelper.cs | 17 +++++++++-------- .../Entities/Channels/RestGuildChannel.cs | 3 +-- .../Entities/Channels/SocketGuildChannel.cs | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs index f23577ea8..f32a44f8a 100644 --- a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs +++ b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs @@ -22,7 +22,6 @@ namespace Discord.Rest public static async Task ModifyAsync(IGuildChannel channel, BaseDiscordClient client, Action func, - IEnumerable overwrites, RequestOptions options) { var args = new GuildChannelProperties(); @@ -31,14 +30,16 @@ namespace Discord.Rest { Name = args.Name, Position = args.Position, - CategoryId = args.CategoryId, - Overwrites = args.SyncWithParent.Value - ? overwrites - .Select(overwrite => new API.Overwrite(overwrite.TargetId, overwrite.TargetType, - overwrite.Permissions.AllowValue, overwrite.Permissions.DenyValue)) - .ToArray() - : null + CategoryId = args.CategoryId }; + if (args.SyncWithParent.IsSpecified && args.SyncWithParent.Value) + { + var categoryChannel = await channel.GetCategoryAsync().ConfigureAwait(false); + apiArgs.Overwrites = categoryChannel.PermissionOverwrites + .Select(overwrite => new API.Overwrite(overwrite.TargetId, overwrite.TargetType, + overwrite.Permissions.AllowValue, overwrite.Permissions.DenyValue)) + .ToArray(); + } return await client.ApiClient.ModifyGuildChannelAsync(channel.Id, apiArgs, options).ConfigureAwait(false); } public static async Task ModifyAsync(ITextChannel channel, BaseDiscordClient client, diff --git a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs index 609153ea8..3dcb96354 100644 --- a/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs +++ b/src/Discord.Net.Rest/Entities/Channels/RestGuildChannel.cs @@ -58,8 +58,7 @@ namespace Discord.Rest } public async Task ModifyAsync(Action func, RequestOptions options = null) { - var categoryChannel = await GetCategoryAsync().ConfigureAwait(false); - var model = await ChannelHelper.ModifyAsync(this, Discord, func, categoryChannel.PermissionOverwrites, options).ConfigureAwait(false); + var model = await ChannelHelper.ModifyAsync(this, Discord, func, options).ConfigureAwait(false); Update(model); } public Task DeleteAsync(RequestOptions options = null) diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs index 48c691e7f..793248f88 100644 --- a/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs +++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketGuildChannel.cs @@ -58,7 +58,7 @@ namespace Discord.WebSocket } public Task ModifyAsync(Action func, RequestOptions options = null) - => ChannelHelper.ModifyAsync(this, Discord, func, Category.PermissionOverwrites, options); + => ChannelHelper.ModifyAsync(this, Discord, func, options); public Task DeleteAsync(RequestOptions options = null) => ChannelHelper.DeleteAsync(this, Discord, options);