From a2f57f8cc61baa2a48e4f7a05602cb3d86484f35 Mon Sep 17 00:00:00 2001 From: Cenk Ergen <57065323+Cenngo@users.noreply.github.com> Date: Mon, 20 Dec 2021 19:41:55 +0300 Subject: [PATCH] fix requireRole attribute of interaction service (#1980) --- .../Attributes/Preconditions/RequireRoleAttribute.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net.Interactions/Attributes/Preconditions/RequireRoleAttribute.cs b/src/Discord.Net.Interactions/Attributes/Preconditions/RequireRoleAttribute.cs index 69a49c7fa..7126d55b6 100644 --- a/src/Discord.Net.Interactions/Attributes/Preconditions/RequireRoleAttribute.cs +++ b/src/Discord.Net.Interactions/Attributes/Preconditions/RequireRoleAttribute.cs @@ -54,15 +54,17 @@ namespace Discord.Interactions if (guildUser.RoleIds.Contains(RoleId.Value)) return Task.FromResult(PreconditionResult.FromSuccess()); else - Task.FromResult(PreconditionResult.FromError(ErrorMessage ?? $"User requires guild role {context.Guild.GetRole(RoleId.Value).Name}.")); + return Task.FromResult(PreconditionResult.FromError(ErrorMessage ?? $"User requires guild role {context.Guild.GetRole(RoleId.Value).Name}.")); } if (!string.IsNullOrEmpty(RoleName)) { - if (guildUser.Guild.Roles.Any(x => x.Name == RoleName)) + var roleNames = guildUser.RoleIds.Select(x => guildUser.Guild.GetRole(x).Name); + + if (roleNames.Contains(RoleName)) return Task.FromResult(PreconditionResult.FromSuccess()); else - Task.FromResult(PreconditionResult.FromError(ErrorMessage ?? $"User requires guild role {RoleName}.")); + return Task.FromResult(PreconditionResult.FromError(ErrorMessage ?? $"User requires guild role {RoleName}.")); } return Task.FromResult(PreconditionResult.FromSuccess());