Making RequireRole dynamic.
This commit is contained in:
parent
ba93b7e45e
commit
80f6cf0803
@ -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());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user