Browse Source

Add Hierarchy to RestGuildUser

pull/1923/head
quin lynch 3 years ago
parent
commit
118de5dd1d
5 changed files with 30 additions and 0 deletions
  1. +5
    -0
      src/Discord.Net.Core/Discord.Net.Core.xml
  2. +5
    -0
      src/Discord.Net.Core/Entities/Users/IGuildUser.cs
  3. +6
    -0
      src/Discord.Net.Rest/Discord.Net.Rest.xml
  4. +12
    -0
      src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
  5. +2
    -0
      src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs

+ 5
- 0
src/Discord.Net.Core/Discord.Net.Core.xml View File

@@ -10056,6 +10056,11 @@
Whether the user has passed the guild's Membership Screening requirements. Whether the user has passed the guild's Membership Screening requirements.
</summary> </summary>
</member> </member>
<member name="P:Discord.IGuildUser.Hierarchy">
<summary>
Gets the users position within the role hierarchy.
</summary>
</member>
<member name="M:Discord.IGuildUser.GetPermissions(Discord.IGuildChannel)"> <member name="M:Discord.IGuildUser.GetPermissions(Discord.IGuildChannel)">
<summary> <summary>
Gets the level permissions granted to this user to a given channel. Gets the level permissions granted to this user to a given channel.


+ 5
- 0
src/Discord.Net.Core/Entities/Users/IGuildUser.cs View File

@@ -73,6 +73,11 @@ namespace Discord
/// </summary> /// </summary>
bool? IsPending { get; } bool? IsPending { get; }


/// <summary>
/// Gets the users position within the role hierarchy.
/// </summary>
int Hierarchy { get; }

/// <summary> /// <summary>
/// Gets the level permissions granted to this user to a given channel. /// Gets the level permissions granted to this user to a given channel.
/// </summary> /// </summary>


+ 6
- 0
src/Discord.Net.Rest/Discord.Net.Rest.xml View File

@@ -4711,6 +4711,9 @@
<member name="P:Discord.Rest.RestGuildUser.IsPending"> <member name="P:Discord.Rest.RestGuildUser.IsPending">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="P:Discord.Rest.RestGuildUser.Hierarchy">
<inheritdoc />
</member>
<member name="P:Discord.Rest.RestGuildUser.GuildPermissions"> <member name="P:Discord.Rest.RestGuildUser.GuildPermissions">
<inheritdoc /> <inheritdoc />
<exception cref="T:System.InvalidOperationException" accessor="get">Resolving permissions requires the parent guild to be downloaded.</exception> <exception cref="T:System.InvalidOperationException" accessor="get">Resolving permissions requires the parent guild to be downloaded.</exception>
@@ -4954,6 +4957,9 @@
<member name="P:Discord.Rest.RestWebhookUser.Discord#IGuildUser#IsPending"> <member name="P:Discord.Rest.RestWebhookUser.Discord#IGuildUser#IsPending">
<inheritdoc /> <inheritdoc />
</member> </member>
<member name="P:Discord.Rest.RestWebhookUser.Discord#IGuildUser#Hierarchy">
<inheritdoc />
</member>
<member name="P:Discord.Rest.RestWebhookUser.Discord#IGuildUser#GuildPermissions"> <member name="P:Discord.Rest.RestWebhookUser.Discord#IGuildUser#GuildPermissions">
<inheritdoc /> <inheritdoc />
</member> </member>


+ 12
- 0
src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs View File

@@ -31,6 +31,18 @@ namespace Discord.Rest
public ulong GuildId => Guild.Id; public ulong GuildId => Guild.Id;
/// <inheritdoc /> /// <inheritdoc />
public bool? IsPending { get; private set; } public bool? IsPending { get; private set; }
/// <inheritdoc />
public int Hierarchy
{
get
{
if (Guild.OwnerId == Id)
return int.MaxValue;

var orderedRoles = Guild.Roles.OrderByDescending(x => x.Position);
return orderedRoles.Where(x => RoleIds.Contains(x.Id)).Max(x => x.Position);
}
}


/// <inheritdoc /> /// <inheritdoc />
/// <exception cref="InvalidOperationException" accessor="get">Resolving permissions requires the parent guild to be downloaded.</exception> /// <exception cref="InvalidOperationException" accessor="get">Resolving permissions requires the parent guild to be downloaded.</exception>


+ 2
- 0
src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs View File

@@ -54,6 +54,8 @@ namespace Discord.Rest
/// <inheritdoc /> /// <inheritdoc />
bool? IGuildUser.IsPending => null; bool? IGuildUser.IsPending => null;
/// <inheritdoc /> /// <inheritdoc />
int IGuildUser.Hierarchy => 0;
/// <inheritdoc />
GuildPermissions IGuildUser.GuildPermissions => GuildPermissions.Webhook; GuildPermissions IGuildUser.GuildPermissions => GuildPermissions.Webhook;


/// <inheritdoc /> /// <inheritdoc />


Loading…
Cancel
Save