void SimpleServerEvents::OnUserQuit( const wxString& nick ) { wxLogDebugFunc( _T("") ); try { User &user=m_serv.GetUser( nick ); Battle* userbattle = user.GetBattle(); if ( userbattle ) { int battleid = userbattle->GetID(); try { if ( &userbattle->GetFounder() == &user ) { for ( int i = 0; i < int(userbattle->GetNumUsers()); i ++ ) { User& battleuser = userbattle->GetUser( i ); OnUserLeftBattle( battleid, battleuser.GetNick() ); } OnBattleClosed( battleid ); } else OnUserLeftBattle( battleid, user.GetNick() ); }catch(...){} } // ui().OnUserOffline( user ); m_serv._RemoveUser( nick ); } catch (std::runtime_error &except) { } }
void ServerEvents::OnUserQuit(const std::string& nick) { slLogDebugFunc(""); try { User& user = m_serv.GetUser(nick); IBattle* userbattle = user.GetBattle(); if (userbattle) { int battleid = userbattle->GetID(); try { if (&userbattle->GetFounder() == &user) { for (int i = 0; i < int(userbattle->GetNumUsers()); i++) { User& battleuser = userbattle->GetUser(i); OnUserLeftBattle(battleid, battleuser.GetNick()); } OnBattleClosed(battleid); } else OnUserLeftBattle(battleid, user.GetNick()); } catch (...) { } } ui().OnUserOffline(user); m_serv._RemoveUser(nick); if (useractions().DoActionOnUser(UserActions::ActNotifLogin, TowxString(nick))) actNotifBox(SL_MAIN_ICON, TowxString(nick) + _(" just went offline")); } catch (std::runtime_error& except) { } }