summaryrefslogtreecommitdiff
path: root/discord/discord.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'discord/discord.cpp')
-rw-r--r--discord/discord.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp
index 725f76f..73b03a3 100644
--- a/discord/discord.cpp
+++ b/discord/discord.cpp
@@ -516,6 +516,9 @@ void DiscordClient::HandleGatewayMessage(std::string str) {
case GatewayEvent::MESSAGE_DELETE_BULK: {
HandleGatewayMessageDeleteBulk(m);
} break;
+ case GatewayEvent::GUILD_MEMBER_UPDATE: {
+ HandleGatewayGuildMemberUpdate(m);
+ } break;
}
} break;
default:
@@ -591,6 +594,12 @@ void DiscordClient::HandleGatewayMessageDeleteBulk(const GatewayMessage &msg) {
}
}
+void DiscordClient::HandleGatewayGuildMemberUpdate(const GatewayMessage &msg) {
+ GuildMemberUpdateMessage data = msg.Data;
+ auto member = GuildMember::from_update_json(msg.Data); // meh
+ m_store.SetGuildMemberData(data.GuildID, data.User.ID, member);
+}
+
void DiscordClient::HandleGatewayMessageUpdate(const GatewayMessage &msg) {
Snowflake id = msg.Data.at("id");
@@ -718,6 +727,7 @@ void DiscordClient::LoadEventMap() {
m_event_map["GUILD_CREATE"] = GatewayEvent::GUILD_CREATE;
m_event_map["GUILD_DELETE"] = GatewayEvent::GUILD_DELETE;
m_event_map["MESSAGE_DELETE_BULK"] = GatewayEvent::MESSAGE_DELETE_BULK;
+ m_event_map["GUILD_MEMBER_UPDATE"] = GatewayEvent::GUILD_MEMBER_UPDATE;
}
DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() {