diff --git a/modules/crypt.cpp b/modules/crypt.cpp index ec1faa2a..614203ee 100644 --- a/modules/crypt.cpp +++ b/modules/crypt.cpp @@ -27,14 +27,20 @@ #include #define REQUIRESSL 1 +#define NICK_PREFIX_KEY "[nick-prefix]" class CCryptMod : public CModule { + CString NickPrefix() { + MCString::iterator it = FindNV(NICK_PREFIX_KEY); + return it != EndNV() ? it->second : "*"; + } + public: MODCONSTRUCTOR(CCryptMod) {} virtual ~CCryptMod() {} virtual EModRet OnUserMsg(CString& sTarget, CString& sMessage) { - sTarget.TrimLeft("\244"); + sTarget.TrimLeft(NickPrefix()); if (sMessage.Left(2) == "``") { sMessage.LeftChomp(2); @@ -47,8 +53,8 @@ public: CChan* pChan = m_pNetwork->FindChan(sTarget); if (pChan) { if (!pChan->AutoClearChanBuffer()) - pChan->AddBuffer(":\244" + _NAMEDFMT(m_pNetwork->GetIRCNick().GetNickMask()) + " PRIVMSG " + _NAMEDFMT(sTarget) + " :{text}", sMessage); - m_pUser->PutUser(":\244" + m_pNetwork->GetIRCNick().GetNickMask() + " PRIVMSG " + sTarget + " :" + sMessage, NULL, m_pClient); + pChan->AddBuffer(":" + NickPrefix() + _NAMEDFMT(m_pNetwork->GetIRCNick().GetNickMask()) + " PRIVMSG " + _NAMEDFMT(sTarget) + " :{text}", sMessage); + m_pUser->PutUser(":" + NickPrefix() + m_pNetwork->GetIRCNick().GetNickMask() + " PRIVMSG " + sTarget + " :" + sMessage, NULL, m_pClient); } CString sMsg = MakeIvec() + sMessage; @@ -83,7 +89,7 @@ public: sMessage.Decrypt(it->second); sMessage.LeftChomp(8); sMessage = sMessage.c_str(); - Nick.SetNick("\244" + Nick.GetNick()); + Nick.SetNick(NickPrefix() + Nick.GetNick()); } } @@ -131,6 +137,13 @@ public: Table.SetCell("Key", it->second); } + MCString::iterator it = FindNV(NICK_PREFIX_KEY); + if (it == EndNV()) { + Table.AddRow(); + Table.SetCell("Target", NICK_PREFIX_KEY); + Table.SetCell("Key", NickPrefix()); + } + PutModule(Table); } } else if (sCmd.Equals("HELP")) {