summaryrefslogtreecommitdiff
path: root/src/discord/discord.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-03-03 23:45:30 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2022-03-03 23:45:30 -0500
commit7f1d3df4a5d640ae3a885886139236e8f9c5555c (patch)
tree0449ccf558357717fa5b570f53828535e24d8b7e /src/discord/discord.cpp
parent17f1289c84af11b6e02f5f5de4714c8aad18e47e (diff)
downloadabaddon-portaudio-7f1d3df4a5d640ae3a885886139236e8f9c5555c.tar.gz
abaddon-portaudio-7f1d3df4a5d640ae3a885886139236e8f9c5555c.zip
start sending request guild members for unknown members
Diffstat (limited to 'src/discord/discord.cpp')
-rw-r--r--src/discord/discord.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp
index 6ea0ea6..c11210d 100644
--- a/src/discord/discord.cpp
+++ b/src/discord/discord.cpp
@@ -1464,6 +1464,9 @@ void DiscordClient::HandleGatewayMessage(std::string str) {
case GatewayEvent::USER_GUILD_SETTINGS_UPDATE: {
HandleGatewayUserGuildSettingsUpdate(m);
} break;
+ case GatewayEvent::GUILD_MEMBERS_CHUNK: {
+ HandleGatewayGuildMembersChunk(m);
+ } break;
}
} break;
default:
@@ -2049,6 +2052,14 @@ void DiscordClient::HandleGatewayUserGuildSettingsUpdate(const GatewayMessage &m
}
}
+void DiscordClient::HandleGatewayGuildMembersChunk(const GatewayMessage &msg) {
+ GuildMembersChunkData data = msg.Data;
+ m_store.BeginTransaction();
+ for (const auto &member : data.Members)
+ m_store.SetGuildMember(data.GuildID, member.User->ID, member);
+ m_store.EndTransaction();
+}
+
void DiscordClient::HandleGatewayReadySupplemental(const GatewayMessage &msg) {
ReadySupplementalData data = msg.Data;
for (const auto &p : data.MergedPresences.Friends) {
@@ -2511,6 +2522,7 @@ void DiscordClient::LoadEventMap() {
m_event_map["THREAD_MEMBER_LIST_UPDATE"] = GatewayEvent::THREAD_MEMBER_LIST_UPDATE;
m_event_map["MESSAGE_ACK"] = GatewayEvent::MESSAGE_ACK;
m_event_map["USER_GUILD_SETTINGS_UPDATE"] = GatewayEvent::USER_GUILD_SETTINGS_UPDATE;
+ m_event_map["GUILD_MEMBERS_CHUNK"] = GatewayEvent::GUILD_MEMBERS_CHUNK;
}
DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() {
@@ -2677,6 +2689,10 @@ DiscordClient::type_signal_message_ack DiscordClient::signal_message_ack() {
return m_signal_message_ack;
}
+DiscordClient::type_signal_guild_members_chunk DiscordClient::signal_guild_members_chunk() {
+ return m_signal_guild_members_chunk;
+}
+
DiscordClient::type_signal_added_to_thread DiscordClient::signal_added_to_thread() {
return m_signal_added_to_thread;
}