From 0d85b13785547a81aa654435e2430a853c1a4f2b Mon Sep 17 00:00:00 2001 From: psychon Date: Thu, 18 Feb 2010 12:09:23 +0000 Subject: [PATCH] Handle more messages in partyline partyline channels now also know about notices, /me and ctcp. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1758 726aef4b-f618-498e-8847-2d620e286838 --- modules/partyline.cpp | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/modules/partyline.cpp b/modules/partyline.cpp index f650b51c..2142094c 100644 --- a/modules/partyline.cpp +++ b/modules/partyline.cpp @@ -365,7 +365,7 @@ public: } } - virtual EModRet OnUserMsg(CString& sTarget, CString& sMessage) { + virtual EModRet HandleMessage(const CString& sCmd, const CString& sTarget, const CString& sMessage) { if (sTarget.empty()) { return CONTINUE; } @@ -388,13 +388,13 @@ public: return HALT; } - PutChan(sTarget, ":?" + m_pUser->GetUserName() + "!" + m_pUser->GetIdent() + "@" + sHost + " PRIVMSG " + sTarget + " :" + sMessage, true, false); + PutChan(sTarget, ":?" + m_pUser->GetUserName() + "!" + m_pUser->GetIdent() + "@" + sHost + " " + sCmd + " " + sTarget + " :" + sMessage, true, false); } else { CString sNick = sTarget.LeftChomp_n(1); CUser* pUser = CZNC::Get().FindUser(sNick); if (pUser) { - pUser->PutUser(":?" + m_pUser->GetUserName() + "!" + m_pUser->GetIdent() + "@" + sHost + " PRIVMSG " + pUser->GetIRCNick().GetNick() + " :" + sMessage); + pUser->PutUser(":?" + m_pUser->GetUserName() + "!" + m_pUser->GetIdent() + "@" + sHost + " " + sCmd + " " + pUser->GetIRCNick().GetNick() + " :" + sMessage); } else { m_pClient->PutClient(":" + GetIRCServer(m_pUser) + " 403 " + m_pUser->GetIRCNick().GetNick() + " " + sTarget + " :No such znc user: " + sNick + ""); } @@ -403,6 +403,26 @@ public: return HALT; } + virtual EModRet OnUserMsg(CString& sTarget, CString& sMessage) { + return HandleMessage("PRIVMSG", sTarget, sMessage); + } + + virtual EModRet OnUserNotice(CString& sTarget, CString& sMessage) { + return HandleMessage("NOTICE", sTarget, sMessage); + } + + virtual EModRet OnUserAction(CString& sTarget, CString& sMessage) { + return HandleMessage("PRIVMSG", sTarget, "\001ACTION " + sMessage + "\001"); + } + + virtual EModRet OnUserCTCP(CString& sTarget, CString& sMessage) { + return HandleMessage("PRIVMSG", sTarget, "\001" + sMessage + "\001"); + } + + virtual EModRet OnUserCTCPReply(CString& sTarget, CString& sMessage) { + return HandleMessage("NOTICE", sTarget, "\001" + sMessage + "\001"); + } + virtual void OnModCommand(const CString& sLine) { CString sCommand = sLine.Token(0);