From 471fb10ebeb653b99094a16c08d6ae9aeab4bf57 Mon Sep 17 00:00:00 2001 From: RogueException Date: Sun, 27 Dec 2015 15:51:14 -0400 Subject: [PATCH] Add User.AddRoles/RemoveRoles --- src/Discord.Net/Models/User.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Discord.Net/Models/User.cs b/src/Discord.Net/Models/User.cs index 365ebd04c..c87aa80f4 100644 --- a/src/Discord.Net/Models/User.cs +++ b/src/Discord.Net/Models/User.cs @@ -239,7 +239,7 @@ namespace Discord if (Server == null) throw new InvalidOperationException("Unable to edit users in a private channel"); //Modify the roles collection and filter out the everyone role - var roleIds = roles == null ? null : Roles.Where(x => !x.IsEveryone).Select(x => x.Id); + var roleIds = roles == null ? null : Roles.Where(x => !x.IsEveryone).Select(x => x.Id).Distinct(); var request = new UpdateMemberRequest(Server.Id, Id) { @@ -327,6 +327,15 @@ namespace Discord return _roles.ContainsKey(role.Id); } + + public Task AddRoles(params Role[] roles) + { + return Edit(roles: Roles.Concat(roles)); + } + public Task RemoveRoles(params Role[] roles) + { + return Edit(roles: Roles.Except(roles)); + } #endregion public override bool Equals(object obj) => obj is User && (obj as User).Id == Id;