Adding Equals() overloads for reactions/emotes (#723)
This commit is contained in:
committed by
RogueException
parent
032aba9129
commit
224d0403db
@@ -21,5 +21,18 @@
|
||||
public string Name { get; }
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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>
|
||||
/// Parse an Emote from its raw format
|
||||
/// </summary>
|
||||
|
||||
@@ -29,5 +29,27 @@ namespace Discord.WebSocket
|
||||
emote = new Emoji(model.Emoji.Name);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user