From 8e9fb27e0bec4c9dd4b706e15987cbb16cf42005 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Mon, 22 May 2023 20:44:58 -0400 Subject: store emojis from reaction events (fixes #165) --- src/discord/discord.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/discord/discord.cpp') diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp index b097f57..b0c55b6 100644 --- a/src/discord/discord.cpp +++ b/src/discord/discord.cpp @@ -1806,21 +1806,31 @@ void DiscordClient::HandleGatewayGuildRoleDelete(const GatewayMessage &msg) { void DiscordClient::HandleGatewayMessageReactionAdd(const GatewayMessage &msg) { MessageReactionAddObject data = msg.Data; + if (data.Emoji.ID.IsValid() && !m_store.GetEmoji(data.Emoji.ID).has_value()) { + m_store.SetEmoji(data.Emoji.ID, data.Emoji); + } + m_store.AddReaction(data, data.UserID == GetUserData().ID); - if (data.Emoji.ID.IsValid()) + if (data.Emoji.ID.IsValid()) { m_signal_reaction_add.emit(data.MessageID, std::to_string(data.Emoji.ID)); - else + } else { m_signal_reaction_add.emit(data.MessageID, data.Emoji.Name); + } } void DiscordClient::HandleGatewayMessageReactionRemove(const GatewayMessage &msg) { MessageReactionRemoveObject data = msg.Data; + if (data.Emoji.ID.IsValid() && !m_store.GetEmoji(data.Emoji.ID).has_value()) { + m_store.SetEmoji(data.Emoji.ID, data.Emoji); + } + m_store.RemoveReaction(data, data.UserID == GetUserData().ID); - if (data.Emoji.ID.IsValid()) + if (data.Emoji.ID.IsValid()) { m_signal_reaction_remove.emit(data.MessageID, std::to_string(data.Emoji.ID)); - else + } else { m_signal_reaction_remove.emit(data.MessageID, data.Emoji.Name); + } } // todo: update channel list item and member list -- cgit v1.2.3