forked from OpenGamers/abaddon
store user data from voice state updates
This commit is contained in:
@@ -2166,10 +2166,19 @@ void DiscordClient::HandleGatewayGuildMembersChunk(const GatewayMessage &msg) {
|
|||||||
#ifdef WITH_VOICE
|
#ifdef WITH_VOICE
|
||||||
void DiscordClient::HandleGatewayVoiceStateUpdate(const GatewayMessage &msg) {
|
void DiscordClient::HandleGatewayVoiceStateUpdate(const GatewayMessage &msg) {
|
||||||
VoiceState data = msg.Data;
|
VoiceState data = msg.Data;
|
||||||
|
|
||||||
if (data.UserID == m_user_data.ID) {
|
if (data.UserID == m_user_data.ID) {
|
||||||
printf("voice session id: %s\n", data.SessionID.c_str());
|
printf("voice session id: %s\n", data.SessionID.c_str());
|
||||||
m_voice.SetSessionID(data.SessionID);
|
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()) {
|
if (data.ChannelID.has_value()) {
|
||||||
const auto old_state = GetVoiceState(data.UserID);
|
const auto old_state = GetVoiceState(data.UserID);
|
||||||
SetVoiceState(data.UserID, *data.ChannelID);
|
SetVoiceState(data.UserID, *data.ChannelID);
|
||||||
|
|||||||
Reference in New Issue
Block a user