From 11358da24e0e73044aed389b1dbbf479808ca036 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sun, 28 Feb 2021 01:44:31 -0500 Subject: handle UPDATE in GUILD_MEMBER_LIST_UPDATE --- discord/discord.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'discord/discord.cpp') diff --git a/discord/discord.cpp b/discord/discord.cpp index f0254e3..fbe6549 100644 --- a/discord/discord.cpp +++ b/discord/discord.cpp @@ -1303,7 +1303,7 @@ void DiscordClient::HandleGatewayGuildMemberListUpdate(const GatewayMessage &msg for (const auto &op : data.Ops) { if (op.Op == "SYNC") { has_sync = true; - for (const auto &item : op.Items) { + for (const auto &item : *op.Items) { if (item->Type == "member") { auto member = static_cast(item.get()); m_store.SetUser(member->User.ID, member->User); @@ -1322,6 +1322,12 @@ void DiscordClient::HandleGatewayGuildMemberListUpdate(const GatewayMessage &msg } } } + } else if (op.Op == "UPDATE") { + if (op.OpItem.has_value() && op.OpItem.value()->Type == "member") { + const auto &m = static_cast(op.OpItem.value().get())->GetAsMemberData(); + m_store.SetGuildMember(data.GuildID, m.User->ID, m); + m_signal_guild_member_update.emit(data.GuildID, m.User->ID); // cheeky + } } } -- cgit v1.2.3