diff --git a/src/Discord.Net/Extensions/GuildUserExtensions.cs b/src/Discord.Net/Extensions/GuildUserExtensions.cs new file mode 100644 index 000000000..9575e66dc --- /dev/null +++ b/src/Discord.Net/Extensions/GuildUserExtensions.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Discord.Extensions +{ + public static class GuildUserExtensions + { + public static Task AddRolesAsync(this IGuildUser user, params IRole[] roles) + => AddRolesAsync(user, (IEnumerable)roles); + public static Task AddRolesAsync(this IGuildUser user, IEnumerable roles) + => user.ModifyAsync(x => x.Roles = Optional.Create(user.Roles.Concat(roles))); + + public static Task RemoveRolesAsync(this IGuildUser user, params IRole[] roles) + => RemoveRolesAsync(user, (IEnumerable)roles); + public static Task RemoveRolesAsync(this IGuildUser user, IEnumerable roles) + => user.ModifyAsync(x => x.Roles = Optional.Create(user.Roles.Except(roles))); + } +}