diff --git a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs index fbbbaeec4..cd9516395 100644 --- a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs +++ b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs @@ -29,8 +29,12 @@ namespace Discord /// Modifies this user's properties in this guild. Task ModifyAsync(Action func, RequestOptions options = null); + /// Adds a role to this user in this guild. + Task AddRoleAsync(IRole role, RequestOptions options = null); /// Adds roles to this user in this guild. Task AddRolesAsync(IEnumerable roles, RequestOptions options = null); + /// Removes a role from this user in this guild. + Task RemoveRoleAsync(IRole role, RequestOptions options = null); /// Removes roles from this user in this guild. Task RemoveRolesAsync(IEnumerable roles, RequestOptions options = null); } diff --git a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs index 055f6d540..538f6b80f 100644 --- a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs +++ b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs @@ -82,14 +82,20 @@ namespace Discord.Rest else if (args.RoleIds.IsSpecified) UpdateRoles(args.RoleIds.Value.ToArray()); } + public Task KickAsync(RequestOptions options = null) + => UserHelper.KickAsync(this, Discord, options); + /// + public Task AddRoleAsync(IRole role, RequestOptions options = null) + => AddRolesAsync(new[] { role }, options); /// public Task AddRolesAsync(IEnumerable roles, RequestOptions options = null) => UserHelper.AddRolesAsync(this, Discord, roles, options); /// + public Task RemoveRoleAsync(IRole role, RequestOptions options = null) + => RemoveRolesAsync(new[] { role }, options); + /// public Task RemoveRolesAsync(IEnumerable roles, RequestOptions options = null) => UserHelper.RemoveRolesAsync(this, Discord, roles, options); - public Task KickAsync(RequestOptions options = null) - => UserHelper.KickAsync(this, Discord, options); public ChannelPermissions GetPermissions(IGuildChannel channel) { diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs index eae11e5e2..4d3765396 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs @@ -108,9 +108,15 @@ namespace Discord.WebSocket public Task KickAsync(RequestOptions options = null) => UserHelper.KickAsync(this, Discord, options); /// + public Task AddRoleAsync(IRole role, RequestOptions options = null) + => AddRolesAsync(new[] { role }, options); + /// public Task AddRolesAsync(IEnumerable roles, RequestOptions options = null) => UserHelper.AddRolesAsync(this, Discord, roles, options); /// + public Task RemoveRoleAsync(IRole role, RequestOptions options = null) + => RemoveRolesAsync(new[] { role }, options); + /// public Task RemoveRolesAsync(IEnumerable roles, RequestOptions options = null) => UserHelper.RemoveRolesAsync(this, Discord, roles, options);