handle THREAD_DELETE

This commit is contained in:
ouwou
2021-07-30 01:32:43 -04:00
parent 355ef009c8
commit 22376ba54a
6 changed files with 46 additions and 3 deletions
+16 -3
View File
@@ -429,6 +429,7 @@ void DiscordClient::SendLazyLoad(Snowflake id) {
msg.GuildID = *GetChannel(id)->GuildID;
msg.ShouldGetActivities = true;
msg.ShouldGetTyping = true;
msg.ShouldGetThreads = true;
m_websocket.Send(msg);
}
@@ -1158,6 +1159,9 @@ void DiscordClient::HandleGatewayMessage(std::string str) {
case GatewayEvent::THREAD_CREATE: {
HandleGatewayThreadCreate(m);
} break;
case GatewayEvent::THREAD_DELETE: {
HandleGatewayThreadDelete(m);
} break;
}
} break;
default:
@@ -1224,7 +1228,7 @@ void DiscordClient::ProcessNewGuild(GuildData &guild) {
}
if (guild.Threads.has_value()) {
for (auto& c : *guild.Threads) {
for (auto &c : *guild.Threads) {
c.GuildID = guild.ID;
m_store.SetChannel(c.ID, c);
}
@@ -1640,12 +1644,16 @@ void DiscordClient::HandleGatewayRelationshipAdd(const GatewayMessage &msg) {
void DiscordClient::HandleGatewayThreadCreate(const GatewayMessage &msg) {
ThreadCreateData data = msg.Data;
m_store.SetChannel(data.Channel.ID, data.Channel);
m_signal_thread_create.emit(data.Channel);
}
void DiscordClient::HandleGatewayThreadDelete(const GatewayMessage &msg) {
ThreadDeleteData data = msg.Data;
// m_store.ClearChannel?
m_signal_thread_delete.emit(data);
}
void DiscordClient::HandleGatewayReadySupplemental(const GatewayMessage &msg) {
ReadySupplementalData data = msg.Data;
for (const auto &p : data.MergedPresences.Friends) {
@@ -2009,6 +2017,7 @@ void DiscordClient::LoadEventMap() {
m_event_map["RELATIONSHIP_REMOVE"] = GatewayEvent::RELATIONSHIP_REMOVE;
m_event_map["RELATIONSHIP_ADD"] = GatewayEvent::RELATIONSHIP_ADD;
m_event_map["THREAD_CREATE"] = GatewayEvent::THREAD_CREATE;
m_event_map["THREAD_DELETE"] = GatewayEvent::THREAD_DELETE;
}
DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() {
@@ -2151,6 +2160,10 @@ DiscordClient::type_signal_thread_create DiscordClient::signal_thread_create() {
return m_signal_thread_create;
}
DiscordClient::type_signal_thread_delete DiscordClient::signal_thread_delete() {
return m_signal_thread_delete;
}
DiscordClient::type_signal_message_sent DiscordClient::signal_message_sent() {
return m_signal_message_sent;
}