mirror of
https://github.com/uowuo/abaddon.git
synced 2024-09-20 15:01:51 +00:00
handle MESSAGE_DELETE_BULK
This commit is contained in:
parent
9cb0eefa56
commit
dddcef117c
|
@ -455,6 +455,9 @@ void DiscordClient::HandleGatewayMessage(std::string str) {
|
|||
case GatewayEvent::GUILD_DELETE: {
|
||||
HandleGatewayGuildDelete(m);
|
||||
} break;
|
||||
case GatewayEvent::MESSAGE_DELETE_BULK: {
|
||||
HandleGatewayMessageDeleteBulk(m);
|
||||
} break;
|
||||
}
|
||||
} break;
|
||||
default:
|
||||
|
@ -511,10 +514,19 @@ void DiscordClient::HandleGatewayMessageCreate(const GatewayMessage &msg) {
|
|||
|
||||
void DiscordClient::HandleGatewayMessageDelete(const GatewayMessage &msg) {
|
||||
MessageDeleteData data = msg.Data;
|
||||
m_signal_message_delete.emit(data.ID, data.ChannelID);
|
||||
auto *cur = m_store.GetMessage(data.ID);
|
||||
if (cur != nullptr)
|
||||
cur->SetDeleted();
|
||||
m_signal_message_delete.emit(data.ID, data.ChannelID);
|
||||
}
|
||||
|
||||
void DiscordClient::HandleGatewayMessageDeleteBulk(const GatewayMessage &msg) {
|
||||
MessageDeleteBulkData data = msg.Data;
|
||||
for (const auto &id : data.IDs) {
|
||||
auto *cur = m_store.GetMessage(id);
|
||||
cur->SetDeleted();
|
||||
m_signal_message_delete.emit(id, data.ChannelID);
|
||||
}
|
||||
}
|
||||
|
||||
void DiscordClient::HandleGatewayMessageUpdate(const GatewayMessage &msg) {
|
||||
|
@ -639,6 +651,7 @@ void DiscordClient::LoadEventMap() {
|
|||
m_event_map["GUILD_MEMBER_LIST_UPDATE"] = GatewayEvent::GUILD_MEMBER_LIST_UPDATE;
|
||||
m_event_map["GUILD_CREATE"] = GatewayEvent::GUILD_CREATE;
|
||||
m_event_map["GUILD_DELETE"] = GatewayEvent::GUILD_DELETE;
|
||||
m_event_map["MESSAGE_DELETE_BULK"] = GatewayEvent::MESSAGE_DELETE_BULK;
|
||||
}
|
||||
|
||||
DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() {
|
||||
|
|
|
@ -115,6 +115,7 @@ private:
|
|||
void HandleGatewayGuildMemberListUpdate(const GatewayMessage &msg);
|
||||
void HandleGatewayGuildCreate(const GatewayMessage &msg);
|
||||
void HandleGatewayGuildDelete(const GatewayMessage &msg);
|
||||
void HandleGatewayMessageDeleteBulk(const GatewayMessage &msg);
|
||||
void HeartbeatThread();
|
||||
void SendIdentify();
|
||||
|
||||
|
|
|
@ -18,6 +18,12 @@ void from_json(const nlohmann::json &j, MessageDeleteData &m) {
|
|||
JS_O("guild_id", m.GuildID);
|
||||
}
|
||||
|
||||
void from_json(const nlohmann::json &j, MessageDeleteBulkData &m) {
|
||||
JS_D("ids", m.IDs);
|
||||
JS_D("channel_id", m.ChannelID);
|
||||
JS_O("guild_id", m.GuildID);
|
||||
}
|
||||
|
||||
void from_json(const nlohmann::json &j, GuildMemberListUpdateMessage::GroupItem &m) {
|
||||
m.Type = "group";
|
||||
JS_D("id", m.ID);
|
||||
|
|
|
@ -33,6 +33,7 @@ enum class GatewayEvent : int {
|
|||
GUILD_MEMBER_LIST_UPDATE,
|
||||
GUILD_CREATE,
|
||||
GUILD_DELETE,
|
||||
MESSAGE_DELETE_BULK,
|
||||
};
|
||||
|
||||
struct GatewayMessage {
|
||||
|
@ -58,6 +59,14 @@ struct MessageDeleteData {
|
|||
friend void from_json(const nlohmann::json &j, MessageDeleteData &m);
|
||||
};
|
||||
|
||||
struct MessageDeleteBulkData {
|
||||
std::vector<Snowflake> IDs; //
|
||||
Snowflake ChannelID; //
|
||||
Snowflake GuildID; // opt
|
||||
|
||||
friend void from_json(const nlohmann::json &j, MessageDeleteBulkData &m);
|
||||
};
|
||||
|
||||
struct GuildMemberListUpdateMessage {
|
||||
struct Item {
|
||||
std::string Type;
|
||||
|
|
Loading…
Reference in New Issue
Block a user