diff --git a/modules/partyline.cpp b/modules/partyline.cpp index 30960791..08ec8012 100644 --- a/modules/partyline.cpp +++ b/modules/partyline.cpp @@ -501,10 +501,6 @@ public: return HandleMessage("NOTICE", sTarget, sMessage); } - EModRet OnUserAction(CString& sTarget, CString& sMessage) override { - return HandleMessage("PRIVMSG", sTarget, "\001ACTION " + sMessage + "\001"); - } - EModRet OnUserCTCP(CString& sTarget, CString& sMessage) override { return HandleMessage("PRIVMSG", sTarget, "\001" + sMessage + "\001"); } diff --git a/src/IRCSock.cpp b/src/IRCSock.cpp index 26ed560f..4b666d23 100644 --- a/src/IRCSock.cpp +++ b/src/IRCSock.cpp @@ -290,6 +290,8 @@ bool CIRCSock::OnActionMessage(CActionMessage& Message) { CChan* pChan = nullptr; CString sTarget = Message.GetTarget(); if (sTarget.Equals(GetNick())) { + IRCSOCKMODULECALL(OnPrivCTCPMessage(Message), &bResult); + if (bResult) return true; IRCSOCKMODULECALL(OnPrivActionMessage(Message), &bResult); if (bResult) return true; @@ -310,6 +312,8 @@ bool CIRCSock::OnActionMessage(CActionMessage& Message) { if (pChan) { Message.SetChan(pChan); FixupChanNick(Message.GetNick(), pChan); + IRCSOCKMODULECALL(OnChanCTCPMessage(Message), &bResult); + if (bResult) return true; IRCSOCKMODULECALL(OnChanActionMessage(Message), &bResult); if (bResult) return true; diff --git a/test/Integration.cpp b/test/Integration.cpp index 4fbfb11e..0effe6ac 100644 --- a/test/Integration.cpp +++ b/test/Integration.cpp @@ -1252,4 +1252,19 @@ TEST_F(ZNCTest, ShellModule) { client.ReadUntil("PRIVMSG nick :znc$"); } +TEST_F(ZNCTest, WatchModule) { + // TODO test other messages + // TODO test options + auto znc = Run();Z; + auto ircd = ConnectIRCd();Z; + auto client = LoginClient();Z; + client.Write("znc loadmod watch"); + client.Write("PRIVMSG *watch :add *"); + client.ReadUntil("Adding entry:"); + ircd.Write(":server 001 nick :Hello"); + ircd.Write(":nick JOIN :#znc"); + ircd.Write(":n!i@h PRIVMSG #znc :\001ACTION foo\001"); + client.ReadUntil(":$*!watch@znc.in PRIVMSG nick :* CTCP: n [ACTION foo] to [#znc]"); +} + } // namespace