| @@ -21,5 +21,18 @@ | |||||
| public string Name { get; } | public string Name { get; } | ||||
| public override string ToString() => Name; | public override string ToString() => Name; | ||||
| public override bool Equals(object other) | |||||
| { | |||||
| if (other == null) return false; | |||||
| if (other == this) return true; | |||||
| var otherEmoji = other as Emoji; | |||||
| if (otherEmoji == null) return false; | |||||
| return string.Equals(Name, otherEmoji.Name); | |||||
| } | |||||
| public override int GetHashCode() => Name.GetHashCode(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -25,6 +25,25 @@ namespace Discord | |||||
| Name = name; | Name = name; | ||||
| } | } | ||||
| public override bool Equals(object other) | |||||
| { | |||||
| if (other == null) return false; | |||||
| if (other == this) return true; | |||||
| var otherEmote = other as Emote; | |||||
| if (otherEmote == null) return false; | |||||
| return string.Equals(Name, otherEmote.Name) && Id == otherEmote.Id; | |||||
| } | |||||
| public override int GetHashCode() | |||||
| { | |||||
| unchecked | |||||
| { | |||||
| return (Name.GetHashCode() * 397) ^ Id.GetHashCode(); | |||||
| } | |||||
| } | |||||
| /// <summary> | /// <summary> | ||||
| /// Parse an Emote from its raw format | /// Parse an Emote from its raw format | ||||
| /// </summary> | /// </summary> | ||||
| @@ -29,5 +29,27 @@ namespace Discord.WebSocket | |||||
| emote = new Emoji(model.Emoji.Name); | emote = new Emoji(model.Emoji.Name); | ||||
| return new SocketReaction(channel, model.MessageId, message, model.UserId, user, emote); | return new SocketReaction(channel, model.MessageId, message, model.UserId, user, emote); | ||||
| } | } | ||||
| public override bool Equals(object other) | |||||
| { | |||||
| if (other == null) return false; | |||||
| if (other == this) return true; | |||||
| var otherReaction = other as SocketReaction; | |||||
| if (otherReaction == null) return false; | |||||
| return UserId == otherReaction.UserId && MessageId == otherReaction.MessageId && Emote.Equals(otherReaction.Emote); | |||||
| } | |||||
| public override int GetHashCode() | |||||
| { | |||||
| unchecked | |||||
| { | |||||
| var hashCode = UserId.GetHashCode(); | |||||
| hashCode = (hashCode * 397) ^ MessageId.GetHashCode(); | |||||
| hashCode = (hashCode * 397) ^ Emote.GetHashCode(); | |||||
| return hashCode; | |||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||