summaryrefslogtreecommitdiff
path: root/src/discord/discord.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-10-18 18:34:14 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2022-10-18 18:34:14 -0400
commite2110c22eefa899bf5d588eb34c477a3cc9c365e (patch)
treed56db62f9583e890967f2f6730d67c580115fdff /src/discord/discord.cpp
parentcf53831b2a368c5413f10565e2ead88d8db8d1b4 (diff)
downloadabaddon-portaudio-e2110c22eefa899bf5d588eb34c477a3cc9c365e.tar.gz
abaddon-portaudio-e2110c22eefa899bf5d588eb34c477a3cc9c365e.zip
store user data from voice state updates
Diffstat (limited to 'src/discord/discord.cpp')
-rw-r--r--src/discord/discord.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp
index 7b1c7b9..cc066cc 100644
--- a/src/discord/discord.cpp
+++ b/src/discord/discord.cpp
@@ -2166,10 +2166,19 @@ void DiscordClient::HandleGatewayGuildMembersChunk(const GatewayMessage &msg) {
#ifdef WITH_VOICE
void DiscordClient::HandleGatewayVoiceStateUpdate(const GatewayMessage &msg) {
VoiceState data = msg.Data;
+
if (data.UserID == m_user_data.ID) {
printf("voice session id: %s\n", data.SessionID.c_str());
m_voice.SetSessionID(data.SessionID);
+ } else {
+ if (data.GuildID.has_value() && data.Member.has_value()) {
+ if (data.Member->User.has_value()) {
+ m_store.SetUser(data.UserID, *data.Member->User);
+ }
+ m_store.SetGuildMember(*data.GuildID, data.UserID, *data.Member);
+ }
}
+
if (data.ChannelID.has_value()) {
const auto old_state = GetVoiceState(data.UserID);
SetVoiceState(data.UserID, *data.ChannelID);