Making RequireRole dynamic.

This commit is contained in:
Sean "Solao Bajiuik" Stoves 2020-06-15 22:05:26 -04:00
parent ba93b7e45e
commit 80f6cf0803

View File

@ -14,24 +14,9 @@ public class RequireRole : PreconditionAttribute
public override Task<PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services) public override Task<PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services)
{ {
string requiredGroup;
if (context.User is SocketGuildUser gUser) if (context.User is SocketGuildUser gUser)
{ {
switch (_role) var requiredGroup = (ConfigurationRepository.GetValue<string>($"Role:{_role}", context.Guild.Id) != null) ? ConfigurationRepository.GetValue<string>($"Role:{_role}", context.Guild.Id) : _role;
{
case "Admin":
requiredGroup = (ConfigurationRepository.GetValue<string>("Role:Admin", context.Guild.Id) != null) ? ConfigurationRepository.GetValue<string>("Role:Admin", context.Guild.Id) : "Admin";
break;
case "Officer":
requiredGroup = (ConfigurationRepository.GetValue<string>("Role:Officer", context.Guild.Id) != null) ? ConfigurationRepository.GetValue<string>("Role:Officer", context.Guild.Id) : "Officer";
break;
case "Member":
requiredGroup = (ConfigurationRepository.GetValue<string>("Role:Member", context.Guild.Id) != null) ? ConfigurationRepository.GetValue<string>("Role:Member", context.Guild.Id) : "Member";
break;
default:
return Task.FromResult(PreconditionResult.FromError($"{_role} is not a valid Permission Node."));
}
if (gUser.Roles.Any(r => r.Name == requiredGroup)) if (gUser.Roles.Any(r => r.Name == requiredGroup))
return Task.FromResult(PreconditionResult.FromSuccess()); return Task.FromResult(PreconditionResult.FromSuccess());