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