Fix chansaver's channel keys by adding other OnMode() hooks

This commit is contained in:
Alexey Sokolov
2014-02-15 21:25:55 +00:00
parent 40536fbf00
commit 618d9c58a4
12 changed files with 116 additions and 76 deletions
+1 -1
View File
@@ -210,7 +210,7 @@ public:
return HALTCORE;
}
virtual void OnOp(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) {
virtual void OnOp(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange) {
if (Nick.GetNick() == m_pNetwork->GetIRCNick().GetNick()) {
const map<CString,CNick>& msNicks = Channel.GetNicks();
+3 -2
View File
@@ -33,8 +33,9 @@ public:
Channel.AddBuffer(":" + GetModNick() + "!" + GetModName() + "@znc.in PRIVMSG " + _NAMEDFMT(Channel.GetName()) + " :{text}", sMessage);
}
virtual void OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs) {
AddBuffer(Channel, OpNick.GetNickMask() + " set mode: " + sModes + " " + sArgs);
virtual void OnRawMode(const CNick* pOpNick, CChan& Channel, const CString& sModes, const CString& sArgs) {
const CString sNickMask = pOpNick ? pOpNick->GetNickMask() : "Server";
AddBuffer(Channel, sNickMask + " set mode: " + sModes + " " + sArgs);
}
virtual void OnKick(const CNick& OpNick, const CString& sKickedNick, CChan& Channel, const CString& sMessage) {
+1 -1
View File
@@ -54,7 +54,7 @@ public:
return CONTINUE;
}
virtual void OnMode(const CNick& OpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange) {
virtual void OnMode(const CNick* pOpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange) {
// This is called when we join (ZNC requests the channel modes
// on join) *and* when someone changes the channel keys.
// We ignore channel key "*" because of some broken nets.
+4 -3
View File
@@ -40,7 +40,7 @@ public:
virtual void OnIRCDisconnected();
virtual EModRet OnBroadcast(CString& sMessage);
virtual void OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
virtual void OnRawMode(const CNick* pOpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
virtual void OnKick(const CNick& OpNick, const CString& sKickedNick, CChan& Channel, const CString& sMessage);
virtual void OnQuit(const CNick& Nick, const CString& sMessage, const vector<CChan*>& vChans);
virtual void OnJoin(const CNick& Nick, CChan& Channel);
@@ -195,9 +195,10 @@ CModule::EModRet CLogMod::OnBroadcast(CString& sMessage)
return CONTINUE;
}
void CLogMod::OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs)
void CLogMod::OnRawMode(const CNick* pOpNick, CChan& Channel, const CString& sModes, const CString& sArgs)
{
PutLog("*** " + OpNick.GetNick() + " sets mode: " + sModes + " " + sArgs, Channel);
const CString sNick = pOpNick ? pOpNick->GetNick() : "Server";
PutLog("*** " + sNick + " sets mode: " + sModes + " " + sArgs, Channel);
}
void CLogMod::OnKick(const CNick& OpNick, const CString& sKickedNick, CChan& Channel, const CString& sMessage)
+7 -7
View File
@@ -13,13 +13,13 @@ EModRet OnIRCConnecting(CIRCSock *pIRCSock)
void OnIRCConnectionError(CIRCSock *pIRCSock)
EModRet OnIRCRegistration(CString& sPass, CString& sNick, CString& sIdent, CString& sRealName)
EModRet OnBroadcast(CString& sMessage)
void OnChanPermission(const CNick& OpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange)
void OnOp(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnDeop(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnVoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnMode(const CNick& OpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange)
void OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs)
void OnChanPermission(const CNick* pOpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange)
void OnOp(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnDeop(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnVoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnDevoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnMode(const CNick* pOpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange)
void OnRawMode(const CNick* pOpNick, CChan& Channel, const CString& sModes, const CString& sArgs)
EModRet OnRaw(CString& sLine)
EModRet OnStatusCommand(CString& sCommand)
void OnModCommand(const CString& sCommand)
+7 -7
View File
@@ -53,13 +53,13 @@ public:
virtual void OnIRCConnectionError(CIRCSock *pIRCSock);
virtual EModRet OnIRCRegistration(CString& sPass, CString& sNick, CString& sIdent, CString& sRealName);
virtual EModRet OnBroadcast(CString& sMessage);
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 OnMode(const CNick& OpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange);
virtual void OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
virtual void OnChanPermission(const CNick* pOpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange);
virtual void OnOp(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
virtual void OnDeop(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
virtual void OnVoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
virtual void OnDevoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
virtual void OnMode(const CNick* pOpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange);
virtual void OnRawMode(const CNick* pOpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
virtual EModRet OnRaw(CString& sLine);
virtual EModRet OnStatusCommand(CString& sCommand);
virtual void OnModCommand(const CString& sCommand);
+7 -7
View File
@@ -13,13 +13,13 @@ EModRet OnIRCConnecting(CIRCSock *pIRCSock)
void OnIRCConnectionError(CIRCSock *pIRCSock)
EModRet OnIRCRegistration(CString& sPass, CString& sNick, CString& sIdent, CString& sRealName)
EModRet OnBroadcast(CString& sMessage)
void OnChanPermission(const CNick& OpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange)
void OnOp(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnDeop(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnVoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnMode(const CNick& OpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange)
void OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs)
void OnChanPermission(const CNick* pOpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange)
void OnOp(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnDeop(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnVoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnDevoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange)
void OnMode(const CNick* pOpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange)
void OnRawMode(const CNick* pOpNick, CChan& Channel, const CString& sModes, const CString& sArgs)
EModRet OnRaw(CString& sLine)
EModRet OnStatusCommand(CString& sCommand)
void OnModCommand(const CString& sCommand)
+7 -7
View File
@@ -69,13 +69,13 @@ public:
virtual void OnIRCConnectionError(CIRCSock *pIRCSock);
virtual EModRet OnIRCRegistration(CString& sPass, CString& sNick, CString& sIdent, CString& sRealName);
virtual EModRet OnBroadcast(CString& sMessage);
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 OnMode(const CNick& OpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange);
virtual void OnRawMode(const CNick& OpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
virtual void OnChanPermission(const CNick* pOpNick, const CNick& Nick, CChan& Channel, unsigned char uMode, bool bAdded, bool bNoChange);
virtual void OnOp(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
virtual void OnDeop(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
virtual void OnVoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
virtual void OnDevoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange);
virtual void OnMode(const CNick* pOpNick, CChan& Channel, char uMode, const CString& sArg, bool bAdded, bool bNoChange);
virtual void OnRawMode(const CNick* pOpNick, CChan& Channel, const CString& sModes, const CString& sArgs);
virtual EModRet OnRaw(CString& sLine);
virtual EModRet OnStatusCommand(CString& sCommand);
virtual void OnModCommand(const CString& sCommand);
+4 -4
View File
@@ -232,13 +232,13 @@ public:
HandleNeed(Channel, "ov");
}
virtual void OnDeop(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) {
if (m_bRequestPerms && IsSelf(Nick) && !IsSelf(OpNick))
virtual void OnDeop(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange) {
if (m_bRequestPerms && IsSelf(Nick) && (!pOpNick || !IsSelf(*pOpNick)))
HandleNeed(Channel, "o");
}
virtual void OnDevoice(const CNick& OpNick, const CNick& Nick, CChan& Channel, bool bNoChange) {
if (m_bRequestPerms && IsSelf(Nick) && !IsSelf(OpNick))
virtual void OnDevoice(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange) {
if (m_bRequestPerms && IsSelf(Nick) && (!pOpNick || !IsSelf(*pOpNick)))
HandleNeed(Channel, "v");
}