Changed OnNick() and OnQuit() to take a vector<CChan*> of common channels

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@164 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
prozacx
2005-04-23 07:24:58 +00:00
parent fccf44540a
commit c88b835837
6 changed files with 42 additions and 27 deletions
+22 -6
View File
@@ -342,10 +342,18 @@ void CIRCSock::ReadLine(const string& sData) {
CUtils::LeftChomp(sNewNick);
}
vector<CChan*> vFoundChans;
const vector<CChan*>& vChans = m_pUser->GetChans();
for (unsigned int a = 0; a < vChans.size(); a++) {
if ((vChans[a]->ChangeNick(sNick, sNewNick)) && (!vChans[a]->IsDetached())) {
bIsVisible = true;
CChan* pChan = vChans[a];
if (pChan->ChangeNick(sNick, sNewNick)) {
vFoundChans.push_back(pChan);
if (!pChan->IsDetached()) {
bIsVisible = true;
}
}
}
@@ -359,7 +367,7 @@ void CIRCSock::ReadLine(const string& sData) {
KeepNick();
}
#ifdef _MODULES
m_pUser->GetModules().OnNick(sNickMask, sNewNick);
m_pUser->GetModules().OnNick(sNickMask, sNewNick, vFoundChans);
#endif
if (!bIsVisible) {
@@ -376,10 +384,18 @@ void CIRCSock::ReadLine(const string& sData) {
// :nick!ident@host.com QUIT :message
CNick Nick(sNickMask);
vector<CChan*> vFoundChans;
const vector<CChan*>& vChans = m_pUser->GetChans();
for (unsigned int a = 0; a < vChans.size(); a++) {
if ((vChans[a]->RemNick(sNick)) && (!vChans[a]->IsDetached())) {
bIsVisible = true;
CChan* pChan = vChans[a];
if (pChan->RemNick(sNick)) {
vFoundChans.push_back(pChan);
if (!pChan->IsDetached()) {
bIsVisible = true;
}
}
}
@@ -388,7 +404,7 @@ void CIRCSock::ReadLine(const string& sData) {
}
#ifdef _MODULES
m_pUser->GetModules().OnQuit(Nick, sMessage);
m_pUser->GetModules().OnQuit(Nick, sMessage, vFoundChans);
#endif
if (!bIsVisible) {
+6 -6
View File
@@ -149,8 +149,8 @@ void CModule::OnModCommand(const string& sCommand) {}
void CModule::OnModNotice(const string& sMessage) {}
void CModule::OnModCTCP(const string& sMessage) {}
void CModule::OnQuit(const CNick& Nick, const string& sMessage) {}
void CModule::OnNick(const CNick& Nick, const string& sNewNick) {}
void CModule::OnQuit(const CNick& Nick, const string& sMessage, const vector<CChan*> vChans) {}
void CModule::OnNick(const CNick& Nick, const string& sNewNick, const vector<CChan*> vChans) {}
void CModule::OnKick(const CNick& Nick, const string& sKickedNick, const CChan& Channel, const string& sMessage) {}
void CModule::OnJoin(const CNick& Nick, const CChan& Channel) {}
void CModule::OnPart(const CNick& Nick, const CChan& Channel) {}
@@ -299,15 +299,15 @@ bool CModules::OnUserRaw(string& sLine) {
return false;
}
void CModules::OnQuit(const CNick& Nick, const string& sMessage) {
void CModules::OnQuit(const CNick& Nick, const string& sMessage, const vector<CChan*> vChans) {
for (unsigned int a = 0; a < size(); a++) {
(*this)[a]->OnQuit(Nick, sMessage);
(*this)[a]->OnQuit(Nick, sMessage, vChans);
}
}
void CModules::OnNick(const CNick& Nick, const string& sNewNick) {
void CModules::OnNick(const CNick& Nick, const string& sNewNick, const vector<CChan*> vChans) {
for (unsigned int a = 0; a < size(); a++) {
(*this)[a]->OnNick(Nick, sNewNick);
(*this)[a]->OnNick(Nick, sNewNick, vChans);
}
}
+5 -5
View File
@@ -8,7 +8,7 @@
using std::vector;
using std::string;
#define VERSION 0.030
#define VERSION 0.031
#define MODULEDEFS(CLASS) extern "C" { CModule* Load(void* p, CUser* pUser, const string& sModName); void Unload(CModule* pMod); double GetVersion(); } double GetVersion() { return VERSION; } CModule* Load(void* p, CUser* pUser, const string& sModName) { return new CLASS(p, pUser, sModName); } void Unload(CModule* pMod) { if (pMod) { delete pMod; } }
#define MODCONSTRUCTOR(CLASS) CLASS(void *pDLL, CUser* pUser, const string& sModName) : CModule(pDLL, pUser, sModName)
@@ -72,8 +72,8 @@ public:
virtual void OnModNotice(const string& sMessage);
virtual void OnModCTCP(const string& sMessage);
virtual void OnQuit(const CNick& Nick, const string& sMessage);
virtual void OnNick(const CNick& Nick, const string& sNewNick);
virtual void OnQuit(const CNick& Nick, const string& sMessage, const vector<CChan*> vChans);
virtual void OnNick(const CNick& Nick, const string& sNewNick, const vector<CChan*> vChans);
virtual void OnKick(const CNick& Nick, const string& sOpNick, const CChan& Channel, const string& sMessage);
virtual void OnJoin(const CNick& Nick, const CChan& Channel);
virtual void OnPart(const CNick& Nick, const CChan& Channel);
@@ -148,8 +148,8 @@ public:
virtual void OnModNotice(const string& sMessage);
virtual void OnModCTCP(const string& sMessage);
virtual void OnQuit(const CNick& Nick, const string& sMessage);
virtual void OnNick(const CNick& Nick, const string& sNewNick);
virtual void OnQuit(const CNick& Nick, const string& sMessage, const vector<CChan*> vChans);
virtual void OnNick(const CNick& Nick, const string& sNewNick, const vector<CChan*> vChans);
virtual void OnKick(const CNick& Nick, const string& sOpNick, const CChan& Channel, const string& sMessage);
virtual void OnJoin(const CNick& Nick, const CChan& Channel);
virtual void OnPart(const CNick& Nick, const CChan& Channel);
+2 -2
View File
@@ -84,7 +84,7 @@ public:
PutModule("[" + OpNick.GetNick() + "] kicked [" + sKickedNick + "] from [" + Channel.GetName() + "] with the msg [" + sMessage + "]");
}
virtual void OnQuit(const CNick& Nick, const string& sMessage) {
virtual void OnQuit(const CNick& Nick, const string& sMessage, const vector<CChan*> vChans) {
PutModule("* Quits: " + Nick.GetNick() + " (" + Nick.GetIdent() + "!" + Nick.GetHost() + ") (" + sMessage + ")");
}
@@ -96,7 +96,7 @@ public:
PutModule("* Parts: " + Nick.GetNick() + " (" + Nick.GetIdent() + "!" + Nick.GetHost() + ")");
}
virtual void OnNick(const CNick& OldNick, const string& sNewNick) {
virtual void OnNick(const CNick& OldNick, const string& sNewNick, const vector<CChan*> vChans) {
PutModule("* " + OldNick.GetNick() + " is now known as " + sNewNick);
}
+5 -6
View File
@@ -26,6 +26,9 @@
* better solution then plain text.
*
* $Log$
* Revision 1.15 2005/04/23 07:24:58 prozacx
* Changed OnNick() and OnQuit() to take a vector<CChan*> of common channels
*
* Revision 1.14 2005/04/23 06:44:19 prozacx
* Changed buffer playback messages to mirror engine behavior
*
@@ -289,18 +292,14 @@ public:
{
((CChan &)cChannel).AddBuffer( SpoofChanMsg( cChannel.GetName(), cOpNick.GetNickMask() + " MODE " + sModes + " " + sArgs ) );
}
virtual void OnQuit(const CNick& cNick, const string& sMessage)
virtual void OnQuit(const CNick& cNick, const string& sMessage, const vector<CChan*> vChans)
{
vector<CChan*> vChans;
cNick.GetCommonChans( vChans, m_pUser );
for( u_int a = 0; a < vChans.size(); a++ )
vChans[a]->AddBuffer( SpoofChanMsg( vChans[a]->GetName(), cNick.GetNickMask() + " QUIT " + sMessage ) );
}
virtual void OnNick(const CNick& cNick, const string& sNewNick)
virtual void OnNick(const CNick& cNick, const string& sNewNick, const vector<CChan*> vChans)
{
vector<CChan*> vChans;
cNick.GetCommonChans( vChans, m_pUser );
for( u_int a = 0; a < vChans.size(); a++ )
vChans[a]->AddBuffer( SpoofChanMsg( vChans[a]->GetName(), cNick.GetNickMask() + " NICK " + sNewNick ) );
}
+2 -2
View File
@@ -190,7 +190,7 @@ public:
Process(OpNick, "* " + OpNick.GetNick() + " kicked " + sKickedNick + " from " + Channel.GetName() + " because [" + sMessage + "]", Channel.GetName());
}
virtual void OnQuit(const CNick& Nick, const string& sMessage) {
virtual void OnQuit(const CNick& Nick, const string& sMessage, const vector<CChan*> vChans) {
Process(Nick, "* Quits: " + Nick.GetNick() + " (" + Nick.GetIdent() + "@" + Nick.GetHost() + ") (" + sMessage + ")", "");
}
@@ -202,7 +202,7 @@ public:
Process(Nick, "* " + Nick.GetNick() + " (" + Nick.GetIdent() + "@" + Nick.GetHost() + ") parts " + Channel.GetName(), Channel.GetName());
}
virtual void OnNick(const CNick& OldNick, const string& sNewNick) {
virtual void OnNick(const CNick& OldNick, const string& sNewNick, const vector<CChan*> vChans) {
Process(OldNick, "* " + OldNick.GetNick() + " is now known as " + sNewNick, "");
}