@@ -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; | |||||
} | |||||
} | |||||
} | } | ||||
} | } |