Browse Source

Merge dfe043080e into 8ec80663f0

pull/209/merge
Finite Reality GitHub 8 years ago
parent
commit
835948efac
1 changed files with 15 additions and 0 deletions
  1. +15
    -0
      src/Discord.Net.Commands/Attributes/Preconditions/RequirePermissionAttribute.cs

+ 15
- 0
src/Discord.Net.Commands/Attributes/Preconditions/RequirePermissionAttribute.cs View File

@@ -8,22 +8,37 @@ namespace Discord.Commands
{
public GuildPermission? GuildPermission { get; }
public ChannelPermission? ChannelPermission { get; }
public bool Fuzzy { get; set; } // public for `RequirePermission(permission, Fuzzy = false)`

public RequirePermissionAttribute(GuildPermission permission)
{
GuildPermission = permission;
ChannelPermission = null;
Fuzzy = true;
}
public RequirePermissionAttribute(ChannelPermission permission)
{
ChannelPermission = permission;
GuildPermission = null;
Fuzzy = true;
}
public override Task<PreconditionResult> CheckPermissions(CommandContext context, CommandInfo command, IDependencyMap map)
{
var guildUser = context.User as IGuildUser;

if (guildUser != null)
{
if (Fuzzy)
{
if (guildUser.Id == guildUser.Guild.OwnerId)
return Task.FromResult(PreconditionResult.FromSuccess());

if (guildUser.GuildPermissions.Administrator)
return Task.FromResult(PreconditionResult.FromSuccess());
}
}

if (GuildPermission.HasValue)
{
if (guildUser == null)


Loading…
Cancel
Save