summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--protocols/Discord/src/dispatch.cpp14
-rw-r--r--protocols/Discord/src/proto.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/protocols/Discord/src/dispatch.cpp b/protocols/Discord/src/dispatch.cpp
index b22e76f583..0c9f5e6dc6 100644
--- a/protocols/Discord/src/dispatch.cpp
+++ b/protocols/Discord/src/dispatch.cpp
@@ -48,6 +48,7 @@ static handlers[] = // these structures must me sorted alphabetically
{ L"MESSAGE_ACK", &CDiscordProto::OnCommandMessageAck },
{ L"MESSAGE_CREATE", &CDiscordProto::OnCommandMessageCreate },
+ { L"MESSAGE_DELETE", &CDiscordProto::OnCommandMessageDelete },
{ L"MESSAGE_UPDATE", &CDiscordProto::OnCommandMessageUpdate },
{ L"PRESENCE_UPDATE", &CDiscordProto::OnCommandPresence },
@@ -509,6 +510,19 @@ void CDiscordProto::OnCommandMessageAck(const JSONNode &pRoot)
}
/////////////////////////////////////////////////////////////////////////////////////////
+// message deleted
+
+void CDiscordProto::OnCommandMessageDelete(const JSONNode &pRoot)
+{
+ CMStringA msgid(pRoot["id"].as_mstring());
+ if (!msgid.IsEmpty()) {
+ MEVENT hEvent = db_event_getById(m_szModuleName, msgid);
+ if (hEvent)
+ db_event_delete(db_event_getContact(hEvent), hEvent);
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
// someone changed its status
void CDiscordProto::OnCommandPresence(const JSONNode &pRoot)
diff --git a/protocols/Discord/src/proto.h b/protocols/Discord/src/proto.h
index 95e6f48d6b..b4022284eb 100644
--- a/protocols/Discord/src/proto.h
+++ b/protocols/Discord/src/proto.h
@@ -370,6 +370,7 @@ public:
void OnCommandFriendRemoved(const JSONNode &json);
void OnCommandMessage(const JSONNode&, bool);
void OnCommandMessageCreate(const JSONNode &json);
+ void OnCommandMessageDelete(const JSONNode &json);
void OnCommandMessageUpdate(const JSONNode &json);
void OnCommandMessageAck(const JSONNode &json);
void OnCommandPresence(const JSONNode &json);