diff --git a/src/iserverevents.h b/src/iserverevents.h index 4b1a8ca0f8..015876a88f 100644 --- a/src/iserverevents.h +++ b/src/iserverevents.h @@ -136,6 +136,7 @@ class IServerEvents virtual void OnFileDownload( bool autolaunch, bool autoclose, bool disconnectonrefuse, const wxString& FileName, const wxString& url, const wxString& description ) = 0; virtual void OnSpringDownloadEvent( wxCommandEvent& event ) = 0; + virtual void OnForceJoinBattle( int battleid, const wxString& line ) = 0; }; diff --git a/src/serverevents.cpp b/src/serverevents.cpp index 625051d109..1c81b28fdd 100644 --- a/src/serverevents.cpp +++ b/src/serverevents.cpp @@ -1060,3 +1060,12 @@ void ServerEvents::OnSpringDownloadEvent( wxCommandEvent& event ) } } + +void ServerEvents::OnForceJoinBattle(int battleid, const wxString &scriptPW) +{ + if ( m_serv.GetCurrentBattle() ) + m_serv.GetCurrentBattle()->Leave(); + m_serv.JoinBattle( battleid, scriptPW ); + UiEvents::GetStatusEventSender( UiEvents::addStatusMessage ).SendEvent( + UiEvents::StatusData( _("Automatically moved to new battle"), 1 ) ); +} diff --git a/src/serverevents.h b/src/serverevents.h index 60c16c47f0..6ac92cec08 100644 --- a/src/serverevents.h +++ b/src/serverevents.h @@ -115,6 +115,7 @@ class ServerEvents : public IServerEvents, public wxEvtHandler void OnFileDownload( bool autolaunch, bool autoclose, bool disconnectonrefuse, const wxString& FileName, const wxString& url, const wxString& description ); void OnSpringDownloadEvent( wxCommandEvent& event ); + void OnForceJoinBattle( int battleid, const wxString& line ); protected: Server& m_serv; diff --git a/src/tasserver.cpp b/src/tasserver.cpp index 7eb41fbd1b..0eaf5a0c29 100644 --- a/src/tasserver.cpp +++ b/src/tasserver.cpp @@ -459,7 +459,7 @@ void TASServer::Login() localaddr = m_sock->GetLocalAddress(); if ( localaddr.IsEmpty() ) localaddr = _T("*"); m_id_transmission = false; - wxFormat login_cmd( _T("%s %s %s %s %s\t%s\ta sp") ); + wxFormat login_cmd( _T("%s %s %s %s %s\t%s\ta m sp") ); SendCmd ( _T("LOGIN"), (login_cmd % m_user % pass % GetHostCPUSpeed() % localaddr % Useragent() % protocol).str() ); m_id_transmission = true; } @@ -1181,6 +1181,12 @@ void TASServer::ExecuteCommand( const wxString& cmd, const wxString& inparams, i wxString description = GetSentenceParam( params ); m_se->OnFileDownload( parsingdata.tasdata.autoopen, parsingdata.tasdata.closelobbyondownload, parsingdata.tasdata.disconnectonrefuse, FileName, url, description ); } + else if ( cmd == _T("FORCEJOINBATTLE") ) + { + const int battleID = GetIntParam( params ); + const wxString scriptpw = GetWordParam( params ); + m_se->OnForceJoinBattle( battleID, scriptpw ); + } else { wxLogMessage( _T("??? Cmd: %s params: %s"), cmd.c_str(), params.c_str() ); diff --git a/src/utils/downloader.cpp b/src/utils/downloader.cpp index fb0bf46aa9..e01d8ed9b6 100644 --- a/src/utils/downloader.cpp +++ b/src/utils/downloader.cpp @@ -214,7 +214,7 @@ void PlasmaInterface::downloadFile(const wxString& host, const wxString& remote_ FileDownloading.Connect( host, 80); wxInputStream* httpstream = FileDownloading.GetInputStream( _T("/") + remote_path ); - wxLogDebug( _T("downloading file %s/%s"),host,remote_path ); + //wxLogDebug( _T("downloading file %s/%s"),host,remote_path ); if ( httpstream ) {