| @@ -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); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -55,6 +55,6 @@ namespace Discord.Rest { [DebuggerDisplay(@"{DebuggerDisplay,nq}")] | |||||
| //IRole | //IRole | ||||
| IGuild IRole.Guild => Guild; | IGuild IRole.Guild => Guild; | ||||
| public int CompareTo(IRole role) => Position.CompareTo(role.Position); | |||||
| public int CompareTo(IRole role) => this.Compare(role); | |||||
| } | } | ||||
| } | } | ||||
| @@ -57,6 +57,6 @@ namespace Discord.WebSocket | |||||
| //IRole | //IRole | ||||
| IGuild IRole.Guild => Guild; | IGuild IRole.Guild => Guild; | ||||
| public int CompareTo(IRole role) => Position.CompareTo(role.Position); | |||||
| public int CompareTo(IRole role) => this.CompareTo(role); | |||||
| } | } | ||||
| } | } | ||||