Fixed order for permission resolving

This commit is contained in:
RogueException
2017-02-11 23:15:48 -04:00
parent e0a0d2100d
commit 70e8cea6e2

View File

@@ -118,6 +118,7 @@ namespace Discord
//Start with this user's guild permissions
resolvedPermissions = guildPermissions;
//Give/Take Role permissions
OverwritePermissions? perms;
var roleIds = user.RoleIds;
if (roleIds.Count > 0)
@@ -128,15 +129,17 @@ namespace Discord
perms = channel.GetPermissionOverwrite(guild.GetRole(roleId));
if (perms != null)
{
deniedPermissions |= perms.Value.DenyValue;
allowedPermissions |= perms.Value.AllowValue;
deniedPermissions |= perms.Value.DenyValue;
}
}
resolvedPermissions = (resolvedPermissions & ~deniedPermissions) | allowedPermissions;
resolvedPermissions = (resolvedPermissions | allowedPermissions) & ~deniedPermissions;
}
//Give/Take User permissions
perms = channel.GetPermissionOverwrite(user);
if (perms != null)
resolvedPermissions = (resolvedPermissions & ~perms.Value.DenyValue) | perms.Value.AllowValue;
resolvedPermissions = (resolvedPermissions | perms.Value.AllowValue) & ~perms.Value.DenyValue;
//TODO: C#7 Typeswitch candidate
var textChannel = channel as ITextChannel;