Browse Source

Fix role comparison

pull/336/head
james7132 8 years ago
parent
commit
2e9bca5b85
3 changed files with 21 additions and 2 deletions
  1. +19
    -0
      src/Discord.Net.Core/Extensions/RoleExtensions.cs
  2. +1
    -1
      src/Discord.Net.Rest/Entities/Roles/RestRole.cs
  3. +1
    -1
      src/Discord.Net.WebSocket/Entities/Roles/SocketRole.cs

+ 19
- 0
src/Discord.Net.Core/Extensions/RoleExtensions.cs View File

@@ -0,0 +1,19 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Discord
{
public static class RoleExtensions
{
internal static int Compare(this IRole r1, IRole r2) {
if(r2 == null)
return 1;
var result = r1.Position.CompareTo(r2.Position);
// As per Discord's documentation, a tie is broken by ID
if(result != 0)
return result;
return r1.Id.CompareTo(r2.Id);
}
}
}

+ 1
- 1
src/Discord.Net.Rest/Entities/Roles/RestRole.cs View File

@@ -55,6 +55,6 @@ namespace Discord.Rest { [DebuggerDisplay(@"{DebuggerDisplay,nq}")]

//IRole
IGuild IRole.Guild => Guild;
public int CompareTo(IRole role) => Position.CompareTo(role.Position);
public int CompareTo(IRole role) => this.Compare(role);
}
}

+ 1
- 1
src/Discord.Net.WebSocket/Entities/Roles/SocketRole.cs View File

@@ -57,6 +57,6 @@ namespace Discord.WebSocket

//IRole
IGuild IRole.Guild => Guild;
public int CompareTo(IRole role) => Position.CompareTo(role.Position);
public int CompareTo(IRole role) => this.CompareTo(role);
}
}

Loading…
Cancel
Save