mirror of
https://github.com/znc/znc.git
synced 2026-03-28 17:42:41 +01:00
Log user quit messages
Since OnIRCDisconnected() doesn't include the quit message, and OnQuit() isn't called when the user quits, we need to hook OnSendToIRCMessage().
This commit is contained in:
@@ -114,6 +114,8 @@ class CLogMod : public CModule {
|
||||
const vector<CChan*>& vChans) override;
|
||||
EModRet OnTopic(CNick& Nick, CChan& Channel, CString& sTopic) override;
|
||||
|
||||
EModRet OnSendToIRCMessage(CMessage& Message) override;
|
||||
|
||||
/* notices */
|
||||
EModRet OnUserNotice(CString& sTarget, CString& sMessage) override;
|
||||
EModRet OnPrivNotice(CNick& Nick, CString& sMessage) override;
|
||||
@@ -399,6 +401,17 @@ void CLogMod::OnQuit(const CNick& Nick, const CString& sMessage,
|
||||
}
|
||||
}
|
||||
|
||||
CModule::EModRet CLogMod::OnSendToIRCMessage(CMessage& Message) {
|
||||
if (Message.GetType() != CMessage::Type::Quit) {
|
||||
return CONTINUE;
|
||||
}
|
||||
CIRCNetwork* pNetwork = Message.GetNetwork();
|
||||
OnQuit(pNetwork->GetIRCNick(),
|
||||
Message.As<CQuitMessage>().GetReason(),
|
||||
pNetwork->GetChans());
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
void CLogMod::OnJoin(const CNick& Nick, CChan& Channel) {
|
||||
if (!HasNV("joins") || GetNV("joins").ToBool())
|
||||
PutLog("*** Joins: " + Nick.GetNick() + " (" + Nick.GetIdent() + "@" +
|
||||
|
||||
Reference in New Issue
Block a user