diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-12-14 01:40:22 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-12-14 01:40:22 -0500 |
commit | 33ed25b2f66e727911182f1552aa8abfd558c69e (patch) | |
tree | 2045e2649879343c0fea20a19cd3f61f3b6c07f4 /discord/discord.cpp | |
parent | 1f19efc90e520870b43a763d64828fada343aa61 (diff) | |
download | abaddon-portaudio-33ed25b2f66e727911182f1552aa8abfd558c69e.tar.gz abaddon-portaudio-33ed25b2f66e727911182f1552aa8abfd558c69e.zip |
add guild role update, create, delete events
Diffstat (limited to 'discord/discord.cpp')
-rw-r--r-- | discord/discord.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp index ec58293..0c34944 100644 --- a/discord/discord.cpp +++ b/discord/discord.cpp @@ -542,6 +542,15 @@ void DiscordClient::HandleGatewayMessage(std::string str) { case GatewayEvent::GUILD_UPDATE: { HandleGatewayGuildUpdate(m); } break; + case GatewayEvent::GUILD_ROLE_UPDATE: { + HandleGatewayGuildRoleUpdate(m); + } break; + case GatewayEvent::GUILD_ROLE_CREATE: { + HandleGatewayGuildRoleCreate(m); + } break; + case GatewayEvent::GUILD_ROLE_DELETE: { + HandleGatewayGuildRoleDelete(m); + } break; } } break; default: @@ -703,6 +712,24 @@ void DiscordClient::HandleGatewayGuildUpdate(const GatewayMessage &msg) { m_signal_guild_update.emit(id); } +void DiscordClient::HandleGatewayGuildRoleUpdate(const GatewayMessage &msg) { + GuildRoleUpdateObject data = msg.Data; + m_store.SetRole(data.Role.ID, data.Role); + m_signal_role_update.emit(data.Role.ID); +} + +void DiscordClient::HandleGatewayGuildRoleCreate(const GatewayMessage &msg) { + GuildRoleCreateObject data = msg.Data; + m_store.SetRole(data.Role.ID, data.Role); + m_signal_role_create.emit(data.Role.ID); +} + +void DiscordClient::HandleGatewayGuildRoleDelete(const GatewayMessage &msg) { + GuildRoleDeleteObject data = msg.Data; + // todo: actually delete it + m_signal_role_delete.emit(data.RoleID); +} + void DiscordClient::HandleGatewayReconnect(const GatewayMessage &msg) { m_signal_disconnected.emit(true); inflateEnd(&m_zstream); @@ -875,6 +902,9 @@ void DiscordClient::LoadEventMap() { m_event_map["CHANNEL_UPDATE"] = GatewayEvent::CHANNEL_UPDATE; m_event_map["CHANNEL_CREATE"] = GatewayEvent::CHANNEL_CREATE; m_event_map["GUILD_UPDATE"] = GatewayEvent::GUILD_UPDATE; + m_event_map["GUILD_ROLE_UPDATE"] = GatewayEvent::GUILD_ROLE_UPDATE; + m_event_map["GUILD_ROLE_CREATE"] = GatewayEvent::GUILD_ROLE_CREATE; + m_event_map["GUILD_ROLE_DELETE"] = GatewayEvent::GUILD_ROLE_DELETE; } DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() { @@ -928,3 +958,15 @@ DiscordClient::type_signal_disconnected DiscordClient::signal_disconnected() { DiscordClient::type_signal_connected DiscordClient::signal_connected() { return m_signal_connected; } + +DiscordClient::type_signal_role_update DiscordClient::signal_role_update() { + return m_signal_role_update; +} + +DiscordClient::type_signal_role_create DiscordClient::signal_role_create() { + return m_signal_role_create; +} + +DiscordClient::type_signal_role_delete DiscordClient::signal_role_delete() { + return m_signal_role_delete; +} |