diff --git a/src/Discord.Net/Entities/Roles/IRole.cs b/src/Discord.Net/Entities/Roles/IRole.cs index 29975be46..f34f3f69c 100644 --- a/src/Discord.Net/Entities/Roles/IRole.cs +++ b/src/Discord.Net/Entities/Roles/IRole.cs @@ -5,7 +5,7 @@ using Discord.API.Rest; namespace Discord { - public interface IRole : IDeletable, ISnowflakeEntity + public interface IRole : IDeletable, ISnowflakeEntity, IEquatable { /// Gets the color given to users of this role. Color Color { get; } diff --git a/src/Discord.Net/Rest/Entities/Roles/Role.cs b/src/Discord.Net/Rest/Entities/Roles/Role.cs index cbcceb0cf..43f021615 100644 --- a/src/Discord.Net/Rest/Entities/Roles/Role.cs +++ b/src/Discord.Net/Rest/Entities/Roles/Role.cs @@ -57,6 +57,20 @@ namespace Discord await Discord.ApiClient.DeleteGuildRoleAsync(Guild.Id, Id).ConfigureAwait(false); } + public override bool Equals(object other) + { + if (other == null) return false; + Role otherAsRole = other as Role; + if (otherAsRole == null) return false; + else return Equals(otherAsRole); + } + + public bool Equals(Role other) + { + if (other == null) return false; + else return (Id.Equals(other.Id)); + } + public Role Clone() => MemberwiseClone() as Role; public override string ToString() => Name;