diff --git a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp index bf6d1b2f..1de4c6b7 100644 --- a/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp +++ b/src/gui/qt/gamelobbydialog/gamelobbydialogimpl.cpp @@ -2226,7 +2226,7 @@ void gameLobbyDialogImpl::adminActionTotalKickBan() tr("Are you sure you want to total kickban the player: \"%1\"?").arg(QString::fromUtf8(info.playerName.c_str())), QMessageBox::Yes | QMessageBox::No); if(ret == QMessageBox::Yes) { - // TODO mySession->adminActionTotalKickBan(playerId); + mySession->adminActionBanPlayer(playerId); } } } diff --git a/src/net/clientthread.h b/src/net/clientthread.h index 844a37f2..82a1d372 100644 --- a/src/net/clientthread.h +++ b/src/net/clientthread.h @@ -99,6 +99,7 @@ public: void SendReportAvatar(unsigned reportedPlayerId, const std::string &avatarHash); void SendReportGameName(unsigned reportedGameId); void SendAdminRemoveGame(unsigned removeGameId); + void SendAdminBanPlayer(unsigned playerId); void StartAsyncRead(); virtual void CloseSession(boost::shared_ptr session); diff --git a/src/net/common/clientthread.cpp b/src/net/common/clientthread.cpp index c4b4423b..1b6a281e 100644 --- a/src/net/common/clientthread.cpp +++ b/src/net/common/clientthread.cpp @@ -386,6 +386,16 @@ ClientThread::SendAdminRemoveGame(unsigned removeGameId) m_ioService->post(boost::bind(&ClientThread::SendSessionPacket, shared_from_this(), packet)); } +void +ClientThread::SendAdminBanPlayer(unsigned playerId) +{ + boost::shared_ptr packet(new NetPacket); + packet->GetMsg()->set_messagetype(PokerTHMessage::Type_AdminBanPlayerMessage); + AdminBanPlayerMessage *netBan = packet->GetMsg()->mutable_adminbanplayermessage(); + netBan->set_banplayerid(playerId); + m_ioService->post(boost::bind(&ClientThread::SendSessionPacket, shared_from_this(), packet)); +} + void ClientThread::StartAsyncRead() { diff --git a/src/session.cpp b/src/session.cpp index a6042747..f68b7bae 100755 --- a/src/session.cpp +++ b/src/session.cpp @@ -427,6 +427,13 @@ void Session::adminActionCloseGame(unsigned gameId) myNetClient->SendAdminRemoveGame(gameId); } +void Session::adminActionBanPlayer(unsigned playerId) +{ + if (!myNetClient) + return; // only act if client is running. + myNetClient->SendAdminBanPlayer(playerId); +} + void Session::kickPlayer(const string &playerName) { if (!myNetClient) diff --git a/src/session.h b/src/session.h index 3315558f..cdf6a412 100755 --- a/src/session.h +++ b/src/session.h @@ -113,6 +113,7 @@ public: void reportBadAvatar(unsigned reportedPlayerId, const std::string &avatarHash); void reportBadGameName(unsigned gameId); + void adminActionBanPlayer(unsigned playerId); void resetNetworkTimeout();