GuildPermissions should take into account ownership and administrator
This commit is contained in:
@@ -88,11 +88,18 @@ namespace Discord
|
|||||||
|
|
||||||
public static ulong ResolveGuild(IGuildUser user)
|
public static ulong ResolveGuild(IGuildUser user)
|
||||||
{
|
{
|
||||||
var roles = user.Roles;
|
ulong resolvedPermissions = 0;
|
||||||
ulong newPermissions = 0;
|
|
||||||
foreach (var role in roles)
|
if (user.Id == user.Guild.OwnerId)
|
||||||
newPermissions |= role.Permissions.RawValue;
|
resolvedPermissions = GuildPermissions.All.RawValue; //Owners always have all permissions
|
||||||
return newPermissions;
|
else
|
||||||
|
{
|
||||||
|
foreach (var role in user.Roles)
|
||||||
|
resolvedPermissions |= role.Permissions.RawValue;
|
||||||
|
if (GetValue(resolvedPermissions, GuildPermission.Administrator))
|
||||||
|
resolvedPermissions = GuildPermissions.All.RawValue; //Administrators always have all permissions
|
||||||
|
}
|
||||||
|
return resolvedPermissions;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*public static ulong ResolveChannel(IGuildUser user, IGuildChannel channel)
|
/*public static ulong ResolveChannel(IGuildUser user, IGuildChannel channel)
|
||||||
@@ -104,7 +111,7 @@ namespace Discord
|
|||||||
ulong resolvedPermissions = 0;
|
ulong resolvedPermissions = 0;
|
||||||
|
|
||||||
ulong mask = ChannelPermissions.All(channel).RawValue;
|
ulong mask = ChannelPermissions.All(channel).RawValue;
|
||||||
if (user.Id == user.Guild.OwnerId || GetValue(guildPermissions, GuildPermission.Administrator))
|
if (/*user.Id == user.Guild.OwnerId || */GetValue(guildPermissions, GuildPermission.Administrator))
|
||||||
resolvedPermissions = mask; //Owners and administrators always have all permissions
|
resolvedPermissions = mask; //Owners and administrators always have all permissions
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user