controlpanel: make delchan support wildcards (resolves #609)

This commit is contained in:
J-P Nurmi
2014-08-18 20:28:11 +02:00
parent 700c899698
commit e48fe0a4fc
+11 -6
View File
@@ -620,16 +620,21 @@ class CAdminMod : public CModule {
return;
}
CChan* pChan = pNetwork->FindChan(sChan);
if (!pChan) {
PutModule("Error: User [" + sUsername + "] does not have a channel named [" + sChan + "].");
std::vector<CChan*> vChans = pNetwork->FindChans(sChan);
if (vChans.empty()) {
PutModule("Error: User [" + sUsername + "] does not have any channel matching [" + sChan + "].");
return;
}
pNetwork->DelChan(sChan);
pNetwork->PutIRC("PART " + sChan);
VCString vsNames;
for (const CChan* pChan : vChans) {
const CString& sName = pChan->GetName();
vsNames.push_back(sName);
pNetwork->PutIRC("PART " + sName);
pNetwork->DelChan(sName);
}
PutModule("Channel [" + sChan + "] for user [" + sUsername + "] deleted.");
PutModule("Channel(s) [" + CString(",").Join(vsNames.begin(), vsNames.end()) + "] for user [" + sUsername + "] deleted.");
}
void GetChan(const CString& sLine) {