From 0bf6459e6ad53364ed45e3d8fe4dd4b1ef7177cd Mon Sep 17 00:00:00 2001 From: Master Kwoth Date: Sun, 6 Aug 2017 17:43:15 +0200 Subject: [PATCH] if .tesar is enabled, .iam will remove all other self assignable roles except only one. #1402 --- .../SelfAssignedRolesCommands.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/NadekoBot/Modules/Administration/SelfAssignedRolesCommands.cs b/src/NadekoBot/Modules/Administration/SelfAssignedRolesCommands.cs index 271ef2c0..79e76a1d 100644 --- a/src/NadekoBot/Modules/Administration/SelfAssignedRolesCommands.cs +++ b/src/NadekoBot/Modules/Administration/SelfAssignedRolesCommands.cs @@ -195,18 +195,23 @@ namespace NadekoBot.Modules.Administration var roleIds = roles.Select(x => x.RoleId).ToArray(); if (conf.ExclusiveSelfAssignedRoles) { - var sameRoleId = guildUser.RoleIds.FirstOrDefault(r => roleIds.Contains(r)); + var sameRoles = guildUser.RoleIds.Where(r => roleIds.Contains(r)); - if (sameRoleId != default(ulong)) + foreach (var roleId in sameRoles) { - var sameRole = Context.Guild.GetRole(sameRoleId); + var sameRole = Context.Guild.GetRole(roleId); if (sameRole != null) { - await guildUser.RemoveRoleAsync(sameRole).ConfigureAwait(false); - await Task.Delay(500).ConfigureAwait(false); + try + { + await guildUser.RemoveRoleAsync(sameRole).ConfigureAwait(false); + await Task.Delay(300).ConfigureAwait(false); + } + catch (Exception ex) + { + _log.Warn(ex); + } } - //await ReplyErrorLocalized("self_assign_already_excl", Format.Bold(sameRole?.Name)).ConfigureAwait(false); - //return; } } try