mirror of
https://github.com/znc/znc.git
synced 2026-07-04 17:01:23 +02:00
Refactored module hook calling macros into one master macro
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@708 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
@@ -195,7 +195,7 @@ void CChan::ModeChange(const CString& sModes, const CString& sOpNick) {
|
||||
CNick* pOpNick = FindNick(sOpNick);
|
||||
|
||||
if (pOpNick) {
|
||||
VOIDMODULECALL(OnRawMode(*pOpNick, *this, sModeArg, sArgs));
|
||||
MODULECALL(OnRawMode(*pOpNick, *this, sModeArg, sArgs), m_pUser, NULL, );
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -234,19 +234,19 @@ void CChan::ModeChange(const CString& sModes, const CString& sOpNick) {
|
||||
bool bNoChange = (pNick->HasPerm(uPerm) == bAdd);
|
||||
|
||||
if (uMode && pOpNick) {
|
||||
VOIDMODULECALL(OnChanPermission(*pOpNick, *pNick, *this, uMode, bAdd, bNoChange));
|
||||
MODULECALL(OnChanPermission(*pOpNick, *pNick, *this, uMode, bAdd, bNoChange), m_pUser, NULL, );
|
||||
|
||||
if (uMode == CChan::M_Op) {
|
||||
if (bAdd) {
|
||||
VOIDMODULECALL(OnOp(*pOpNick, *pNick, *this, bNoChange));
|
||||
MODULECALL(OnOp(*pOpNick, *pNick, *this, bNoChange), m_pUser, NULL, );
|
||||
} else {
|
||||
VOIDMODULECALL(OnDeop(*pOpNick, *pNick, *this, bNoChange));
|
||||
MODULECALL(OnDeop(*pOpNick, *pNick, *this, bNoChange), m_pUser, NULL, );
|
||||
}
|
||||
} else if (uMode == CChan::M_Voice) {
|
||||
if (bAdd) {
|
||||
VOIDMODULECALL(OnVoice(*pOpNick, *pNick, *this, bNoChange));
|
||||
MODULECALL(OnVoice(*pOpNick, *pNick, *this, bNoChange), m_pUser, NULL, );
|
||||
} else {
|
||||
VOIDMODULECALL(OnDevoice(*pOpNick, *pNick, *this, bNoChange));
|
||||
MODULECALL(OnDevoice(*pOpNick, *pNick, *this, bNoChange), m_pUser, NULL, );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+11
-33
@@ -18,9 +18,7 @@ void CClient::ReadLine(const CString& sData) {
|
||||
|
||||
#ifdef _MODULES
|
||||
if (m_bAuthed) {
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLRET(OnUserRaw(sLine));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserRaw(sLine), m_pUser, this, return);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -133,9 +131,7 @@ void CClient::ReadLine(const CString& sData) {
|
||||
for (unsigned int a = 0; a < vChans.size(); a++) {
|
||||
CString sChannel = vChans[a];
|
||||
#ifdef _MODULES
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLCONT(OnUserJoin(sChannel, sKey));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserJoin(sChannel, sKey), m_pUser, this, continue);
|
||||
#endif
|
||||
|
||||
CChan* pChan = m_pUser->FindChan(sChannel);
|
||||
@@ -169,9 +165,7 @@ void CClient::ReadLine(const CString& sData) {
|
||||
}
|
||||
|
||||
#ifdef _MODULES
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLRET(OnUserPart(sChan, sMessage));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserPart(sChan, sMessage), m_pUser, this, return);
|
||||
#endif
|
||||
|
||||
if (m_pUser) {
|
||||
@@ -242,15 +236,11 @@ void CClient::ReadLine(const CString& sData) {
|
||||
sCTCP.LeftChomp();
|
||||
sCTCP.RightChomp();
|
||||
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLRET(OnUserCTCPReply(sTarget, sCTCP));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserCTCPReply(sTarget, sCTCP), m_pUser, this, return);
|
||||
|
||||
sMsg = "\001" + sCTCP + "\001";
|
||||
} else {
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLRET(OnUserNotice(sTarget, sMsg));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserNotice(sTarget, sMsg), m_pUser, this, return);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -320,9 +310,7 @@ void CClient::ReadLine(const CString& sData) {
|
||||
}
|
||||
#ifdef _MODULES
|
||||
} else {
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLRET(OnDCCUserSend(sTarget, uLongIP, uPort, sFile, uFileSize));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnDCCUserSend(sTarget, uLongIP, uPort, sFile, uFileSize), m_pUser, this, return);
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
@@ -395,9 +383,7 @@ void CClient::ReadLine(const CString& sData) {
|
||||
}
|
||||
#ifdef _MODULES
|
||||
} else {
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLRET(OnUserCTCP(sTarget, sCTCP));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserCTCP(sTarget, sCTCP), m_pUser, this, return);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -407,9 +393,7 @@ void CClient::ReadLine(const CString& sData) {
|
||||
|
||||
if ((m_pUser) && (sTarget.CaseCmp(CString(m_pUser->GetStatusPrefix() + "status")) == 0)) {
|
||||
#ifdef _MODULES
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLRET(OnStatusCommand(sMsg));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnStatusCommand(sMsg), m_pUser, this, return);
|
||||
#endif
|
||||
UserCommand(sMsg);
|
||||
return;
|
||||
@@ -445,9 +429,7 @@ void CClient::ReadLine(const CString& sData) {
|
||||
}
|
||||
|
||||
#ifdef _MODULES
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
MODULECALLRET(OnUserMsg(sTarget, sMsg));
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserMsg(sTarget, sMsg), m_pUser, this, return);
|
||||
#endif
|
||||
|
||||
CChan* pChan = m_pUser->FindChan(sTarget);
|
||||
@@ -1272,9 +1254,7 @@ void CClient::AcceptLogin(CUser& User) {
|
||||
SendMotd();
|
||||
|
||||
#ifdef _MODULES
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
VOIDMODULECALL(OnUserAttached());
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserAttached(), m_pUser, this, );
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1295,9 +1275,7 @@ void CClient::Disconnected() {
|
||||
m_pIRCSock = NULL;
|
||||
|
||||
#ifdef _MODULES
|
||||
CZNC::Get().GetModules().SetClient(this);
|
||||
VOIDMODULECALL(OnUserDetached());
|
||||
CZNC::Get().GetModules().SetClient(NULL);
|
||||
MODULECALL(OnUserDetached(), m_pUser, this, );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
+15
-20
@@ -59,12 +59,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
DEBUG_ONLY(cout << "(" << m_pUser->GetUserName() << ") IRC -> ZNC [" << sLine << "]" << endl);
|
||||
|
||||
#ifdef _MODULES
|
||||
CGlobalModules& GMods = CZNC::Get().GetModules();
|
||||
GMods.SetUser(m_pUser);
|
||||
if (GMods.OnRaw(sLine) || m_pUser->GetModules().OnRaw(sLine)) {
|
||||
return;
|
||||
}
|
||||
GMods.SetUser(NULL);
|
||||
MODULECALL(OnRaw(sLine), m_pUser, NULL, return);
|
||||
#endif
|
||||
|
||||
if (strncasecmp(sLine.c_str(), "PING ", 5) == 0) {
|
||||
@@ -86,7 +81,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
|
||||
m_pUser->StartAwayNickTimer();
|
||||
|
||||
VOIDMODULECALL(OnIRCConnected());
|
||||
MODULECALL(OnIRCConnected(), m_pUser, NULL, );
|
||||
|
||||
m_bAuthed = true;
|
||||
m_pUser->PutStatus("Connected!");
|
||||
@@ -390,7 +385,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
KeepNick(true);
|
||||
}
|
||||
|
||||
VOIDMODULECALL(OnNick(Nick, sNewNick, vFoundChans));
|
||||
MODULECALL(OnNick(Nick, sNewNick, vFoundChans), m_pUser, NULL, );
|
||||
|
||||
if (!bIsVisible) {
|
||||
return;
|
||||
@@ -424,7 +419,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
KeepNick(true);
|
||||
}
|
||||
|
||||
VOIDMODULECALL(OnQuit(Nick, sMessage, vFoundChans));
|
||||
MODULECALL(OnQuit(Nick, sMessage, vFoundChans), m_pUser, NULL, );
|
||||
|
||||
if (!bIsVisible) {
|
||||
return;
|
||||
@@ -443,7 +438,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
CChan* pChan = m_pUser->FindChan(sChan);
|
||||
if (pChan) {
|
||||
pChan->AddNick(Nick.GetNickMask());
|
||||
VOIDMODULECALL(OnJoin(Nick.GetNickMask(), *pChan));
|
||||
MODULECALL(OnJoin(Nick.GetNickMask(), *pChan), m_pUser, NULL, );
|
||||
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
@@ -458,7 +453,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
CChan* pChan = m_pUser->FindChan(sChan);
|
||||
if (pChan) {
|
||||
pChan->RemNick(Nick.GetNick());
|
||||
VOIDMODULECALL(OnPart(Nick.GetNickMask(), *pChan));
|
||||
MODULECALL(OnPart(Nick.GetNickMask(), *pChan), m_pUser, NULL, );
|
||||
}
|
||||
|
||||
// Todo: use nick compare function
|
||||
@@ -492,7 +487,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
|
||||
if (pChan) {
|
||||
pChan->RemNick(sKickedNick);
|
||||
VOIDMODULECALL(OnKick(Nick.GetNickMask(), sKickedNick, *pChan, sMsg));
|
||||
MODULECALL(OnKick(Nick.GetNickMask(), sKickedNick, *pChan, sMsg), m_pUser, NULL, );
|
||||
}
|
||||
|
||||
if (GetNick().CaseCmp(sKickedNick) == 0) {
|
||||
@@ -614,13 +609,13 @@ void CIRCSock::KeepNick(bool bForce) {
|
||||
}
|
||||
|
||||
bool CIRCSock::OnCTCPReply(CNick& Nick, CString& sMessage) {
|
||||
MODULECALL(OnCTCPReply(Nick, sMessage));
|
||||
MODULECALL(OnCTCPReply(Nick, sMessage), m_pUser, NULL, return true);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CIRCSock::OnPrivCTCP(CNick& Nick, CString& sMessage) {
|
||||
MODULECALL(OnPrivCTCP(Nick, sMessage));
|
||||
MODULECALL(OnPrivCTCP(Nick, sMessage), m_pUser, NULL, return true);
|
||||
|
||||
if (strncasecmp(sMessage.c_str(), "DCC ", 4) == 0 && m_pUser && m_pUser->BounceDCCs()) {
|
||||
// DCC CHAT chat 2453612361 44592
|
||||
@@ -692,7 +687,7 @@ bool CIRCSock::OnPrivCTCP(CNick& Nick, CString& sMessage) {
|
||||
}
|
||||
|
||||
bool CIRCSock::OnPrivNotice(CNick& Nick, CString& sMessage) {
|
||||
MODULECALL(OnPrivNotice(Nick, sMessage));
|
||||
MODULECALL(OnPrivNotice(Nick, sMessage), m_pUser, NULL, return true);
|
||||
|
||||
if (!m_pUser->IsUserAttached()) {
|
||||
// If the user is detached, add to the buffer
|
||||
@@ -703,7 +698,7 @@ bool CIRCSock::OnPrivNotice(CNick& Nick, CString& sMessage) {
|
||||
}
|
||||
|
||||
bool CIRCSock::OnPrivMsg(CNick& Nick, CString& sMessage) {
|
||||
MODULECALL(OnPrivMsg(Nick, sMessage));
|
||||
MODULECALL(OnPrivMsg(Nick, sMessage), m_pUser, NULL, return true);
|
||||
|
||||
if (!m_pUser->IsUserAttached()) {
|
||||
// If the user is detached, add to the buffer
|
||||
@@ -720,7 +715,7 @@ bool CIRCSock::OnChanCTCP(CNick& Nick, const CString& sChan, CString& sMessage)
|
||||
if (sMessage.Token(0).CaseCmp("ACTION") == 0 && (pChan->KeepBuffer() || !m_pUser->IsUserAttached())) {
|
||||
pChan->AddBuffer(":" + Nick.GetNickMask() + " PRIVMSG " + sChan + " :\001" + sMessage + "\001");
|
||||
} else {
|
||||
MODULECALL(OnChanCTCP(Nick, *pChan, sMessage));
|
||||
MODULECALL(OnChanCTCP(Nick, *pChan, sMessage), m_pUser, NULL, return true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -730,7 +725,7 @@ bool CIRCSock::OnChanCTCP(CNick& Nick, const CString& sChan, CString& sMessage)
|
||||
bool CIRCSock::OnChanNotice(CNick& Nick, const CString& sChan, CString& sMessage) {
|
||||
CChan* pChan = m_pUser->FindChan(sChan);
|
||||
if (pChan) {
|
||||
MODULECALL(OnChanNotice(Nick, *pChan, sMessage));
|
||||
MODULECALL(OnChanNotice(Nick, *pChan, sMessage), m_pUser, NULL, return true);
|
||||
|
||||
if ((pChan->KeepBuffer()) || (!m_pUser->IsUserAttached())) {
|
||||
pChan->AddBuffer(":" + Nick.GetNickMask() + " NOTICE " + sChan + " :" + sMessage);
|
||||
@@ -743,7 +738,7 @@ bool CIRCSock::OnChanNotice(CNick& Nick, const CString& sChan, CString& sMessage
|
||||
bool CIRCSock::OnChanMsg(CNick& Nick, const CString& sChan, CString& sMessage) {
|
||||
CChan* pChan = m_pUser->FindChan(sChan);
|
||||
if (pChan) {
|
||||
MODULECALL(OnChanMsg(Nick, *pChan, sMessage));
|
||||
MODULECALL(OnChanMsg(Nick, *pChan, sMessage), m_pUser, NULL, return true);
|
||||
|
||||
if (pChan->KeepBuffer() || !m_pUser->IsUserAttached()) {
|
||||
pChan->AddBuffer(":" + Nick.GetNickMask() + " PRIVMSG " + sChan + " :" + sMessage);
|
||||
@@ -776,7 +771,7 @@ void CIRCSock::Connected() {
|
||||
}
|
||||
|
||||
void CIRCSock::Disconnected() {
|
||||
VOIDMODULECALL(OnIRCDisconnected());
|
||||
MODULECALL(OnIRCDisconnected(), m_pUser, NULL, );
|
||||
|
||||
DEBUG_ONLY(cout << GetSockName() << " == Disconnected()" << endl);
|
||||
if (!m_pUser->IsBeingDeleted()) {
|
||||
|
||||
+18
-18
@@ -551,20 +551,20 @@ bool CModules::OnBoot() {
|
||||
return true;
|
||||
}
|
||||
|
||||
void CModules::OnIRCConnected() { MODUNLOADCHK(OnIRCConnected()); }
|
||||
bool CModules::OnIRCConnected() { MODUNLOADCHK(OnIRCConnected()); return false; }
|
||||
bool CModules::OnBroadcast(CString& sMessage) { MODHALTCHK(OnBroadcast(sMessage)); }
|
||||
void CModules::OnIRCDisconnected() { MODUNLOADCHK(OnIRCDisconnected()); }
|
||||
bool CModules::OnIRCDisconnected() { MODUNLOADCHK(OnIRCDisconnected()); return false; }
|
||||
bool CModules::OnDCCUserSend(const CNick& RemoteNick, unsigned long uLongIP, unsigned short uPort, const CString& sFile, unsigned long uFileSize) { MODHALTCHK(OnDCCUserSend(RemoteNick, uLongIP, uPort, sFile, uFileSize)); }
|
||||
void CModules::OnChanPermission(const CNick& OpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange) { MODUNLOADCHK(OnChanPermission(OpNick, Nick, Channel, uMode, bAdded, bNoChange)); }
|
||||
void CModules::OnOp(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) { MODUNLOADCHK(OnOp(OpNick, Nick, Channel, bNoChange)); }
|
||||
void CModules::OnDeop(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) { MODUNLOADCHK(OnDeop(OpNick, Nick, Channel, bNoChange)); }
|
||||
void CModules::OnVoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) { MODUNLOADCHK(OnVoice(OpNick, Nick, Channel, bNoChange)); }
|
||||
void CModules::OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) { MODUNLOADCHK(OnDevoice(OpNick, Nick, Channel, bNoChange)); }
|
||||
void CModules::OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs) { MODUNLOADCHK(OnRawMode(OpNick, Channel, sModes, sArgs)); }
|
||||
bool CModules::OnChanPermission(const CNick& OpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange) { MODUNLOADCHK(OnChanPermission(OpNick, Nick, Channel, uMode, bAdded, bNoChange)); return false; }
|
||||
bool CModules::OnOp(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) { MODUNLOADCHK(OnOp(OpNick, Nick, Channel, bNoChange)); return false; }
|
||||
bool CModules::OnDeop(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) { MODUNLOADCHK(OnDeop(OpNick, Nick, Channel, bNoChange)); return false; }
|
||||
bool CModules::OnVoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) { MODUNLOADCHK(OnVoice(OpNick, Nick, Channel, bNoChange)); return false; }
|
||||
bool CModules::OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) { MODUNLOADCHK(OnDevoice(OpNick, Nick, Channel, bNoChange)); return false; }
|
||||
bool CModules::OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs) { MODUNLOADCHK(OnRawMode(OpNick, Channel, sModes, sArgs)); return false; }
|
||||
bool CModules::OnRaw(CString& sLine) { MODHALTCHK(OnRaw(sLine)); }
|
||||
|
||||
void CModules::OnUserAttached() { MODUNLOADCHK(OnUserAttached()); }
|
||||
void CModules::OnUserDetached() { MODUNLOADCHK(OnUserDetached()); }
|
||||
bool CModules::OnUserAttached() { MODUNLOADCHK(OnUserAttached()); return false; }
|
||||
bool CModules::OnUserDetached() { MODUNLOADCHK(OnUserDetached()); return false; }
|
||||
bool CModules::OnUserRaw(CString& sLine) { MODHALTCHK(OnUserRaw(sLine)); }
|
||||
bool CModules::OnUserCTCPReply(CString& sTarget, CString& sMessage) { MODHALTCHK(OnUserCTCPReply(sTarget, sMessage)); }
|
||||
bool CModules::OnUserCTCP(CString& sTarget, CString& sMessage) { MODHALTCHK(OnUserCTCP(sTarget, sMessage)); }
|
||||
@@ -573,11 +573,11 @@ bool CModules::OnUserNotice(CString& sTarget, CString& sMessage) { MODHALTCHK(On
|
||||
bool CModules::OnUserJoin(CString& sChannel, CString& sKey) { MODHALTCHK(OnUserJoin(sChannel, sKey)); }
|
||||
bool CModules::OnUserPart(CString& sChannel, CString& sMessage) { MODHALTCHK(OnUserPart(sChannel, sMessage)); }
|
||||
|
||||
void CModules::OnQuit(const CNick& Nick, const CString& sMessage, const vector<CChan*>& vChans) { MODUNLOADCHK(OnQuit(Nick, sMessage, vChans)); }
|
||||
void CModules::OnNick(const CNick& Nick, const CString& sNewNick, const vector<CChan*>& vChans) { MODUNLOADCHK(OnNick(Nick, sNewNick, vChans)); }
|
||||
void CModules::OnKick(const CNick& Nick, const CString& sKickedNick, CChan& Channel, const CString& sMessage) { MODUNLOADCHK(OnKick(Nick, sKickedNick, Channel, sMessage)); }
|
||||
void CModules::OnJoin(const CNick& Nick, CChan& Channel) { MODUNLOADCHK(OnJoin(Nick, Channel)); }
|
||||
void CModules::OnPart(const CNick& Nick, CChan& Channel) { MODUNLOADCHK(OnPart(Nick, Channel)); }
|
||||
bool CModules::OnQuit(const CNick& Nick, const CString& sMessage, const vector<CChan*>& vChans) { MODUNLOADCHK(OnQuit(Nick, sMessage, vChans)); return false; }
|
||||
bool CModules::OnNick(const CNick& Nick, const CString& sNewNick, const vector<CChan*>& vChans) { MODUNLOADCHK(OnNick(Nick, sNewNick, vChans)); return false; }
|
||||
bool CModules::OnKick(const CNick& Nick, const CString& sKickedNick, CChan& Channel, const CString& sMessage) { MODUNLOADCHK(OnKick(Nick, sKickedNick, Channel, sMessage)); return false; }
|
||||
bool CModules::OnJoin(const CNick& Nick, CChan& Channel) { MODUNLOADCHK(OnJoin(Nick, Channel)); return false; }
|
||||
bool CModules::OnPart(const CNick& Nick, CChan& Channel) { MODUNLOADCHK(OnPart(Nick, Channel)); return false; }
|
||||
bool CModules::OnCTCPReply(CNick& Nick, CString& sMessage) { MODHALTCHK(OnCTCPReply(Nick, sMessage)); }
|
||||
bool CModules::OnPrivCTCP(CNick& Nick, CString& sMessage) { MODHALTCHK(OnPrivCTCP(Nick, sMessage)); }
|
||||
bool CModules::OnChanCTCP(CNick& Nick, CChan& Channel, CString& sMessage) { MODHALTCHK(OnChanCTCP(Nick, Channel, sMessage)); }
|
||||
@@ -586,9 +586,9 @@ bool CModules::OnChanMsg(CNick& Nick, CChan& Channel, CString& sMessage) { MODHA
|
||||
bool CModules::OnPrivNotice(CNick& Nick, CString& sMessage) { MODHALTCHK(OnPrivNotice(Nick, sMessage)); }
|
||||
bool CModules::OnChanNotice(CNick& Nick, CChan& Channel, CString& sMessage) { MODHALTCHK(OnChanNotice(Nick, Channel, sMessage)); }
|
||||
bool CModules::OnStatusCommand(const CString& sCommand) { MODHALTCHK(OnStatusCommand(sCommand)); }
|
||||
void CModules::OnModCommand(const CString& sCommand) { MODUNLOADCHK(OnModCommand(sCommand)); }
|
||||
void CModules::OnModNotice(const CString& sMessage) { MODUNLOADCHK(OnModNotice(sMessage)); }
|
||||
void CModules::OnModCTCP(const CString& sMessage) { MODUNLOADCHK(OnModCTCP(sMessage)); }
|
||||
bool CModules::OnModCommand(const CString& sCommand) { MODUNLOADCHK(OnModCommand(sCommand)); return false; }
|
||||
bool CModules::OnModNotice(const CString& sMessage) { MODUNLOADCHK(OnModNotice(sMessage)); return false; }
|
||||
bool CModules::OnModCTCP(const CString& sMessage) { MODUNLOADCHK(OnModCTCP(sMessage)); return false; }
|
||||
|
||||
////////////////////
|
||||
// CGlobalModules //
|
||||
|
||||
@@ -326,34 +326,34 @@ public:
|
||||
void UnloadAll();
|
||||
|
||||
virtual bool OnBoot(); // Return false to abort
|
||||
virtual void OnIRCDisconnected();
|
||||
virtual void OnIRCConnected();
|
||||
virtual bool OnIRCDisconnected();
|
||||
virtual bool OnIRCConnected();
|
||||
virtual bool OnBroadcast(CString& sMessage);
|
||||
|
||||
virtual bool OnDCCUserSend(const CNick& RemoteNick, unsigned long uLongIP, unsigned short uPort, const CString& sFile, unsigned long uFileSize);
|
||||
|
||||
virtual void OnChanPermission(const CNick& OpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange);
|
||||
virtual void OnOp(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
|
||||
virtual void OnDeop(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
|
||||
virtual void OnVoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
|
||||
virtual void OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
|
||||
virtual void OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
|
||||
virtual bool OnChanPermission(const CNick& OpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange);
|
||||
virtual bool OnOp(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
|
||||
virtual bool OnDeop(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
|
||||
virtual bool OnVoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
|
||||
virtual bool OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
|
||||
virtual bool OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
|
||||
|
||||
virtual bool OnRaw(CString& sLine);
|
||||
|
||||
virtual bool OnStatusCommand(const CString& sCommand);
|
||||
virtual void OnModCommand(const CString& sCommand);
|
||||
virtual void OnModNotice(const CString& sMessage);
|
||||
virtual void OnModCTCP(const CString& sMessage);
|
||||
virtual bool OnModCommand(const CString& sCommand);
|
||||
virtual bool OnModNotice(const CString& sMessage);
|
||||
virtual bool OnModCTCP(const CString& sMessage);
|
||||
|
||||
virtual void OnQuit(const CNick& Nick, const CString& sMessage, const vector<CChan*>& vChans);
|
||||
virtual void OnNick(const CNick& Nick, const CString& sNewNick, const vector<CChan*>& vChans);
|
||||
virtual void OnKick(const CNick& Nick, const CString& sOpNick, CChan& Channel, const CString& sMessage);
|
||||
virtual void OnJoin(const CNick& Nick, CChan& Channel);
|
||||
virtual void OnPart(const CNick& Nick, CChan& Channel);
|
||||
virtual bool OnQuit(const CNick& Nick, const CString& sMessage, const vector<CChan*>& vChans);
|
||||
virtual bool OnNick(const CNick& Nick, const CString& sNewNick, const vector<CChan*>& vChans);
|
||||
virtual bool OnKick(const CNick& Nick, const CString& sOpNick, CChan& Channel, const CString& sMessage);
|
||||
virtual bool OnJoin(const CNick& Nick, CChan& Channel);
|
||||
virtual bool OnPart(const CNick& Nick, CChan& Channel);
|
||||
|
||||
virtual void OnUserAttached();
|
||||
virtual void OnUserDetached();
|
||||
virtual bool OnUserAttached();
|
||||
virtual bool OnUserDetached();
|
||||
virtual bool OnUserRaw(CString& sLine);
|
||||
virtual bool OnUserCTCPReply(CString& sTarget, CString& sMessage);
|
||||
virtual bool OnUserCTCP(CString& sTarget, CString& sMessage);
|
||||
|
||||
@@ -8,62 +8,24 @@
|
||||
#endif
|
||||
|
||||
#ifdef _MODULES
|
||||
#define VOIDMODULECALL(func) \
|
||||
if (m_pUser) { \
|
||||
CGlobalModules& GMods = CZNC::Get().GetModules(); \
|
||||
GMods.SetUser(m_pUser); \
|
||||
GMods.func; \
|
||||
m_pUser->GetModules().func; \
|
||||
GMods.SetUser(NULL); \
|
||||
#define MODULECALL(macFUNC, macUSER, macCLIENT, macEXITER) \
|
||||
if (macUSER) { \
|
||||
CGlobalModules& GMods = CZNC::Get().GetModules(); \
|
||||
CModules& UMods = macUSER->GetModules(); \
|
||||
GMods.SetUser(macUSER); GMods.SetClient(macCLIENT); \
|
||||
UMods.SetClient(macCLIENT); \
|
||||
if (GMods.macFUNC || UMods.macFUNC) { \
|
||||
GMods.SetUser(NULL); GMods.SetClient(NULL); \
|
||||
UMods.SetClient(NULL); \
|
||||
macEXITER; \
|
||||
} \
|
||||
GMods.SetUser(NULL); GMods.SetClient(NULL); \
|
||||
UMods.SetClient(NULL); \
|
||||
}
|
||||
#else
|
||||
#define VOIDMODULECALL(func)
|
||||
#define MODULECALL(macFUNC, macUSER, macCLIENT, macEXITER)
|
||||
#endif
|
||||
|
||||
#ifdef _MODULES
|
||||
#define MODULECALLRET(func) \
|
||||
if (m_pUser) { \
|
||||
CGlobalModules& GMods = CZNC::Get().GetModules(); \
|
||||
GMods.SetUser(m_pUser); \
|
||||
if (GMods.func || m_pUser->GetModules().func) { \
|
||||
GMods.SetUser(NULL); \
|
||||
return; \
|
||||
} \
|
||||
GMods.SetUser(NULL); \
|
||||
}
|
||||
#else
|
||||
#define MODULECALLRET(func)
|
||||
#endif
|
||||
|
||||
#ifdef _MODULES
|
||||
#define MODULECALLCONT(func) \
|
||||
if (m_pUser) { \
|
||||
CGlobalModules& GMods = CZNC::Get().GetModules(); \
|
||||
GMods.SetUser(m_pUser); \
|
||||
if (GMods.func || m_pUser->GetModules().func) { \
|
||||
GMods.SetUser(NULL); \
|
||||
continue; \
|
||||
} \
|
||||
GMods.SetUser(NULL); \
|
||||
}
|
||||
#else
|
||||
#define MODULECALLCONT(func)
|
||||
#endif
|
||||
|
||||
#ifdef _MODULES
|
||||
#define MODULECALL(func) \
|
||||
if (m_pUser) { \
|
||||
CGlobalModules& GMods = CZNC::Get().GetModules(); \
|
||||
GMods.SetUser(m_pUser); \
|
||||
if (GMods.func || m_pUser->GetModules().func) { \
|
||||
GMods.SetUser(NULL); \
|
||||
return true; \
|
||||
} \
|
||||
GMods.SetUser(NULL); \
|
||||
}
|
||||
#else
|
||||
#define MODULECALL(func)
|
||||
#endif
|
||||
|
||||
#ifndef CS_STRING
|
||||
#define CS_STRING CString
|
||||
|
||||
@@ -1152,8 +1152,7 @@ void CZNC::Broadcast(const CString& sMessage, CUser* pUser) {
|
||||
if (a->second != pUser) {
|
||||
CString sMsg = sMessage;
|
||||
#ifdef _MODULES
|
||||
CUser* m_pUser = a->second; // This is a semi-hack because MODULECALLCONT below expects the user to be stored in m_pUser
|
||||
MODULECALLCONT(OnBroadcast(sMsg));
|
||||
MODULECALL(OnBroadcast(sMsg), a->second, NULL, continue);
|
||||
#endif
|
||||
a->second->PutStatusNotice("*** " + sMsg);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user