From c3a5c8ec859a0580bf9e0777888a1625fb9bc0ee Mon Sep 17 00:00:00 2001 From: Kai Philipp Date: Wed, 11 Sep 2019 20:45:52 +0200 Subject: [PATCH] create game limit --- src/dbofficial/serverdbthread.cpp | 2 +- src/net/common/serverlobbythread.cpp | 7 ++++++- src/net/sessionmanager.h | 4 ++-- src/playerdata.cpp | 2 +- src/playerdata.h | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/dbofficial/serverdbthread.cpp b/src/dbofficial/serverdbthread.cpp index d5be1fe3..3bb08885 100644 --- a/src/dbofficial/serverdbthread.cpp +++ b/src/dbofficial/serverdbthread.cpp @@ -240,7 +240,7 @@ ServerDBThread::SetPlayerLastGames(unsigned requestId, DB_id playerId, std::vect LOG_ERROR("ServerDBThread::SetPlayerLastGames() entered."); std::ostringstream oss; - std::copy(lastGames.begin(), lastGames.end(), std::ostream_iterator(oss, ";")); + std::copy(lastGames.begin(), lastGames.end(), std::ostream_iterator(oss, ",")); std::string lastGamesFieldValue( oss.str() ); list params; ostringstream paramStream; diff --git a/src/net/common/serverlobbythread.cpp b/src/net/common/serverlobbythread.cpp index 0f9a0eff..a79067ca 100644 --- a/src/net/common/serverlobbythread.cpp +++ b/src/net/common/serverlobbythread.cpp @@ -1379,6 +1379,11 @@ ServerLobbyThread::HandleNetPacketCreateGame(boost::shared_ptr sess SendJoinGameFailed(session, gameId, NTF_NET_JOIN_GUEST_FORBIDDEN); } else if (!ServerGame::CheckSettings(tmpData, password, GetServerMode())) { SendJoinGameFailed(session, gameId, NTF_NET_JOIN_INVALID_SETTINGS); + } else if (!session->GetPlayerData()->IsPlayerAllowedToJoinCreateLimitRank() + // @TODO: uncomment in productive + /*&& tmpData.gameType != GAME_TYPE_RANKING*/ ) { + LOG_ERROR('not allowed due to ranklimit') + SendJoinGameFailed(session, gameId, NTF_NET_JOIN_GUEST_FORBIDDEN); } else { boost::shared_ptr game( new ServerGame( @@ -1429,7 +1434,7 @@ ServerLobbyThread::HandleNetPacketJoinGame(boost::shared_ptr sessio SendJoinGameFailed(session, joinGame.gameid(), NTF_NET_JOIN_NOT_INVITED); } else if (!game->CheckPassword(password)) { SendJoinGameFailed(session, joinGame.gameid(), NTF_NET_JOIN_INVALID_PASSWORD); - } else if (tmpData.gameType == GAME_TYPE_RANKING && !session->GetPlayerData()->IsPlayerAllowedToJoinLimitRank()) { + } else if (tmpData.gameType == GAME_TYPE_RANKING && !session->GetPlayerData()->IsPlayerAllowedToJoinCreateLimitRank()) { SendJoinGameFailed(session, joinGame.gameid(), NTF_NET_JOIN_GUEST_FORBIDDEN); // } else if (tmpData.gameType == GAME_TYPE_RANKING && !joinGame.spectateonly() // && session->GetClientAddr() != SERVER_ADDRESS_LOCALHOST_STR diff --git a/src/net/sessionmanager.h b/src/net/sessionmanager.h index 9a4b9622..a75359aa 100644 --- a/src/net/sessionmanager.h +++ b/src/net/sessionmanager.h @@ -65,8 +65,8 @@ public: bool IsPlayerConnected(unsigned uniqueId) const; bool IsClientAddressConnected(const std::string &clientAddress) const; bool IsGuestAllowedToConnect(const std::string &clientAddress) const; - bool IsPlayerAllowedToJoinLimitRank(const std::string &playerName) const; - bool IsPlayerAllowedToJoinLimitRank(unsigned uniqueId) const; + bool IsPlayerAllowedToJoinCreateLimitRank(const std::string &playerName) const; + bool IsPlayerAllowedToJoinCreateLimitRank(unsigned uniqueId) const; void ForEach(boost::function)> func); diff --git a/src/playerdata.cpp b/src/playerdata.cpp index db71a196..b4d10c4d 100644 --- a/src/playerdata.cpp +++ b/src/playerdata.cpp @@ -269,7 +269,7 @@ PlayerData::GetPlayerLastGames() } bool -PlayerData::IsPlayerAllowedToJoinLimitRank() +PlayerData::IsPlayerAllowedToJoinCreateLimitRank() { bool retVal = false; diff --git a/src/playerdata.h b/src/playerdata.h index 62a0c763..12204f9f 100644 --- a/src/playerdata.h +++ b/src/playerdata.h @@ -120,7 +120,7 @@ public: void AddPlayerLastGame(long lastGames); void SetPlayerLastGames(std::vector lastGames); std::vector GetPlayerLastGames(); - bool IsPlayerAllowedToJoinLimitRank(); + bool IsPlayerAllowedToJoinCreateLimitRank(); bool operator<(const PlayerData &other) const;