diff --git a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs index 463bdba10..cc6b417b6 100644 --- a/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs +++ b/src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs @@ -39,24 +39,6 @@ namespace Discord.Rest var args = new TextChannelProperties(); func(args); - var overwrites = new List(); - if (args.UserOverwrites.IsSpecified) - overwrites.AddRange(args.UserOverwrites.Value.Select(x => new API.Overwrite() - { - TargetId = x.Key, - TargetType = PermissionTarget.User, - Allow = x.Value.AllowValue, - Deny = x.Value.DenyValue, - })); - if (args.RoleOverwrites.IsSpecified) - overwrites.AddRange(args.RoleOverwrites.Value.Select(x => new API.Overwrite() - { - TargetId = x.Key, - TargetType = PermissionTarget.Role, - Allow = x.Value.AllowValue, - Deny = x.Value.DenyValue, - })); - var apiArgs = new API.Rest.ModifyTextChannelParams { Name = args.Name, @@ -65,7 +47,15 @@ namespace Discord.Rest Topic = args.Topic, IsNsfw = args.IsNsfw, SlowModeInterval = args.SlowModeInterval, - Overwrites = overwrites.Count != 0 ? Optional.Create(overwrites.ToArray()) : Optional.Create(), + Overwrites = args.PermissionOverwrites.IsSpecified + ? args.PermissionOverwrites.Value.Select(overwrite => new API.Overwrite + { + TargetId = overwrite.TargetId, + TargetType = overwrite.TargetType, + Allow = overwrite.Permissions.AllowValue, + Deny = overwrite.Permissions.DenyValue + }).ToArray() + : Optional.Create(), }; return await client.ApiClient.ModifyGuildChannelAsync(channel.Id, apiArgs, options).ConfigureAwait(false); }