From 9365a70e1d605aa088cc78236eee8a5b718320e4 Mon Sep 17 00:00:00 2001 From: RogueException Date: Sun, 26 Jun 2016 23:03:05 -0300 Subject: [PATCH] Added IGuildUser Add/Remove Roles extensions --- src/Discord.Net/Extensions/GuildUserExtensions.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/Discord.Net/Extensions/GuildUserExtensions.cs 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))); + } +}