From 1fbf8253e18d448fbaec5eb63184fc0c33e83436 Mon Sep 17 00:00:00 2001 From: Emzi0767 Date: Sun, 26 Feb 2017 23:01:02 +0100 Subject: [PATCH] Made changes per fox's suggestion: Change->Modify. New Modify overload. --- .../Entities/Users/IGuildUser.cs | 6 +++++- .../Entities/Users/RestGuildUser.cs | 16 +++++++++++----- .../Entities/Users/SocketGuildUser.cs | 16 +++++++++++----- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs index 471b8ac9c..1f50ae596 100644 --- a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs +++ b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs @@ -38,6 +38,10 @@ namespace Discord /// Removes roles from this user in this guild. Task RemoveRolesAsync(IEnumerable roles); /// Adds and removes roles from this user in this guild. - Task ChangeRolesAsync(IEnumerable add = null, IEnumerable remove = null); + Task ModifyRolesAsync(IEnumerable add = null, IEnumerable remove = null); + /// Replaces roles from this user in this guild. + Task ModifyRolesAsync(params IRole[] roles); + /// Replaces roles from this user in this guild. + Task ModifyRolesAsync(IEnumerable roles); } } diff --git a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs index 5bc2d34b4..670b163dc 100644 --- a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs +++ b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs @@ -83,14 +83,14 @@ namespace Discord.Rest UpdateRoles(args.RoleIds.Value.ToArray()); } public Task AddRolesAsync(params IRole[] roles) - => ChangeRolesAsync(add: roles); + => ModifyRolesAsync(add: roles); public Task AddRolesAsync(IEnumerable roles) - => ChangeRolesAsync(add: roles); + => ModifyRolesAsync(add: roles); public Task RemoveRolesAsync(params IRole[] roles) - => ChangeRolesAsync(remove: roles); + => ModifyRolesAsync(remove: roles); public Task RemoveRolesAsync(IEnumerable roles) - => ChangeRolesAsync(remove: roles); - public async Task ChangeRolesAsync(IEnumerable add = null, IEnumerable remove = null) + => ModifyRolesAsync(remove: roles); + public async Task ModifyRolesAsync(IEnumerable add = null, IEnumerable remove = null) { IEnumerable roleIds = RoleIds; if (remove != null) @@ -99,6 +99,12 @@ namespace Discord.Rest roleIds = roleIds.Concat(add.Select(x => x.Id)); await ModifyAsync(x => x.RoleIds = roleIds.ToArray()).ConfigureAwait(false); } + /// Replaces roles from this user in this guild. + Task ModifyRolesAsync(params IRole[] roles) + => ModifyRolesAsync(roles as IEnumerable); + /// Replaces roles from this user in this guild. + Task ModifyRolesAsync(IEnumerable roles) + => ModifyAsync(x => x.Roles = new Optional>(roles)); public Task KickAsync(RequestOptions options = null) => UserHelper.KickAsync(this, Discord, options); diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs index e0c95e9d8..a57a9eeac 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs @@ -108,14 +108,14 @@ namespace Discord.WebSocket public Task KickAsync(RequestOptions options = null) => UserHelper.KickAsync(this, Discord, options); public Task AddRolesAsync(params IRole[] roles) - => ChangeRolesAsync(add: roles); + => ModifyRolesAsync(add: roles); public Task AddRolesAsync(IEnumerable roles) - => ChangeRolesAsync(add: roles); + => ModifyRolesAsync(add: roles); public Task RemoveRolesAsync(params IRole[] roles) - => ChangeRolesAsync(remove: roles); + => ModifyRolesAsync(remove: roles); public Task RemoveRolesAsync(IEnumerable roles) - => ChangeRolesAsync(remove: roles); - public async Task ChangeRolesAsync(IEnumerable add = null, IEnumerable remove = null) + => ModifyRolesAsync(remove: roles); + public async Task ModifyRolesAsync(IEnumerable add = null, IEnumerable remove = null) { IEnumerable roleIds = _roleIds; if (remove != null) @@ -124,6 +124,12 @@ namespace Discord.WebSocket roleIds = roleIds.Concat(add.Select(x => x.Id)); await ModifyAsync(x => x.RoleIds = roleIds.ToArray()).ConfigureAwait(false); } + /// Replaces roles from this user in this guild. + Task ModifyRolesAsync(params IRole[] roles) + => ModifyRolesAsync(roles as IEnumerable); + /// Replaces roles from this user in this guild. + Task ModifyRolesAsync(IEnumerable roles) + => ModifyAsync(x => x.Roles = new Optional>(roles)); public ChannelPermissions GetPermissions(IGuildChannel channel) => new ChannelPermissions(Permissions.ResolveChannel(Guild, this, channel, GuildPermissions.RawValue));