Add an optional argument to /znc jump

If you have 10 servers in your server list and you want to directly jump to e.g.
irc.foo.bar, you can now do "/znc jump irc.foo.bar".

Thanks to PsWii60 for constantly bugging me for this.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2109 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
psychon
2010-08-22 12:09:47 +00:00
parent dbb767ca65
commit 2becac12ba
3 changed files with 43 additions and 4 deletions

View File

@@ -234,11 +234,38 @@ void CClient::UserCommand(CString& sLine) {
return;
}
CString sArgs = sLine.Token(1, true);
CServer *pServer = NULL;
if (!sArgs.empty()) {
pServer = m_pUser->FindServer(sArgs);
if (!pServer) {
PutStatus("Server [" + sArgs + "] not found");
return;
}
m_pUser->SetNextServer(pServer);
if (!GetIRCSock()) {
// If we are already connecting to some server,
// we have to abort that attempt
Csock *pIRCSock = CZNC::Get().GetManager()
.FindSockByName("IRC::" + m_pUser->GetUserName());
if (pIRCSock)
pIRCSock->Close();
}
}
if (GetIRCSock()) {
GetIRCSock()->Quit();
PutStatus("Jumping to the next server in the list...");
if (pServer)
PutStatus("Connecting to [" + pServer->GetName() + "]...");
else
PutStatus("Jumping to the next server in the list...");
} else {
PutStatus("Connecting...");
if (pServer)
PutStatus("Connecting to [" + pServer->GetName() + "]...");
else
PutStatus("Connecting...");
}
m_pUser->SetIRCConnectEnabled(true);
@@ -1193,8 +1220,8 @@ void CClient::HelpUser() {
}
Table.AddRow();
Table.SetCell("Command", "Jump");
Table.SetCell("Description", "Jump to the next server in the list");
Table.SetCell("Command", "Jump [server]");
Table.SetCell("Description", "Jump to the next or the specified server");
Table.AddRow();
Table.SetCell("Command", "Disconnect");