mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-27 16:16:35 +03:00
handle thread create via thread_member_update
This commit is contained in:
+12
-1
@@ -1201,6 +1201,9 @@ void DiscordClient::HandleGatewayMessage(std::string str) {
|
|||||||
case GatewayEvent::THREAD_MEMBERS_UPDATE: {
|
case GatewayEvent::THREAD_MEMBERS_UPDATE: {
|
||||||
HandleGatewayThreadMembersUpdate(m);
|
HandleGatewayThreadMembersUpdate(m);
|
||||||
} break;
|
} break;
|
||||||
|
case GatewayEvent::THREAD_MEMBER_UPDATE: {
|
||||||
|
HandleGatewayThreadMemberUpdate(m);
|
||||||
|
} break;
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
@@ -1693,7 +1696,7 @@ void DiscordClient::HandleGatewayThreadCreate(const GatewayMessage &msg) {
|
|||||||
|
|
||||||
void DiscordClient::HandleGatewayThreadDelete(const GatewayMessage &msg) {
|
void DiscordClient::HandleGatewayThreadDelete(const GatewayMessage &msg) {
|
||||||
ThreadDeleteData data = msg.Data;
|
ThreadDeleteData data = msg.Data;
|
||||||
// m_store.ClearChannel?
|
m_store.ClearChannel(data.ID);
|
||||||
m_signal_thread_delete.emit(data);
|
m_signal_thread_delete.emit(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1723,6 +1726,13 @@ void DiscordClient::HandleGatewayThreadMembersUpdate(const GatewayMessage &msg)
|
|||||||
m_signal_thread_members_update.emit(data);
|
m_signal_thread_members_update.emit(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiscordClient::HandleGatewayThreadMemberUpdate(const GatewayMessage &msg) {
|
||||||
|
ThreadMemberUpdateData data = msg.Data;
|
||||||
|
m_joined_threads.insert(*data.Member.ThreadID);
|
||||||
|
if (*data.Member.UserID == GetUserData().ID)
|
||||||
|
m_signal_added_to_thread.emit(*data.Member.ThreadID);
|
||||||
|
}
|
||||||
|
|
||||||
void DiscordClient::HandleGatewayReadySupplemental(const GatewayMessage &msg) {
|
void DiscordClient::HandleGatewayReadySupplemental(const GatewayMessage &msg) {
|
||||||
ReadySupplementalData data = msg.Data;
|
ReadySupplementalData data = msg.Data;
|
||||||
for (const auto &p : data.MergedPresences.Friends) {
|
for (const auto &p : data.MergedPresences.Friends) {
|
||||||
@@ -2089,6 +2099,7 @@ void DiscordClient::LoadEventMap() {
|
|||||||
m_event_map["THREAD_DELETE"] = GatewayEvent::THREAD_DELETE;
|
m_event_map["THREAD_DELETE"] = GatewayEvent::THREAD_DELETE;
|
||||||
m_event_map["THREAD_LIST_SYNC"] = GatewayEvent::THREAD_LIST_SYNC;
|
m_event_map["THREAD_LIST_SYNC"] = GatewayEvent::THREAD_LIST_SYNC;
|
||||||
m_event_map["THREAD_MEMBERS_UPDATE"] = GatewayEvent::THREAD_MEMBERS_UPDATE;
|
m_event_map["THREAD_MEMBERS_UPDATE"] = GatewayEvent::THREAD_MEMBERS_UPDATE;
|
||||||
|
m_event_map["THREAD_MEMBER_UPDATE"] = GatewayEvent::THREAD_MEMBER_UPDATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() {
|
DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() {
|
||||||
|
|||||||
@@ -244,6 +244,7 @@ private:
|
|||||||
void HandleGatewayThreadDelete(const GatewayMessage &msg);
|
void HandleGatewayThreadDelete(const GatewayMessage &msg);
|
||||||
void HandleGatewayThreadListSync(const GatewayMessage &msg);
|
void HandleGatewayThreadListSync(const GatewayMessage &msg);
|
||||||
void HandleGatewayThreadMembersUpdate(const GatewayMessage &msg);
|
void HandleGatewayThreadMembersUpdate(const GatewayMessage &msg);
|
||||||
|
void HandleGatewayThreadMemberUpdate(const GatewayMessage &msg);
|
||||||
void HandleGatewayReadySupplemental(const GatewayMessage &msg);
|
void HandleGatewayReadySupplemental(const GatewayMessage &msg);
|
||||||
void HandleGatewayReconnect(const GatewayMessage &msg);
|
void HandleGatewayReconnect(const GatewayMessage &msg);
|
||||||
void HandleGatewayInvalidSession(const GatewayMessage &msg);
|
void HandleGatewayInvalidSession(const GatewayMessage &msg);
|
||||||
|
|||||||
@@ -503,3 +503,7 @@ void from_json(const nlohmann::json &j, ArchivedThreadsResponseData &m) {
|
|||||||
JS_D("members", m.Members);
|
JS_D("members", m.Members);
|
||||||
JS_D("has_more", m.HasMore);
|
JS_D("has_more", m.HasMore);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void from_json(const nlohmann::json &j, ThreadMemberUpdateData &m) {
|
||||||
|
m.Member = j;
|
||||||
|
}
|
||||||
|
|||||||
@@ -708,3 +708,9 @@ struct ArchivedThreadsResponseData {
|
|||||||
|
|
||||||
friend void from_json(const nlohmann::json &j, ArchivedThreadsResponseData &m);
|
friend void from_json(const nlohmann::json &j, ArchivedThreadsResponseData &m);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct ThreadMemberUpdateData {
|
||||||
|
ThreadMemberObject Member;
|
||||||
|
|
||||||
|
friend void from_json(const nlohmann::json &j, ThreadMemberUpdateData &m);
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user