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);