1#include <CS2Kit/Players/PlayerManager.hpp>
2#include <CS2Kit/Utils/StringUtils.hpp>
9Player* PlayerManager::AddPlayer(
int slot, int64_t steamId,
const std::string& name,
const std::string& ipAddress)
11 _playersBySlot.erase(slot);
13 auto player = std::make_unique<Player>(slot, steamId, name, ipAddress);
14 Player* playerPtr = player.get();
16 _playersBySlot[slot] = std::move(player);
17 _playersBySteamId[steamId] = playerPtr;
22void PlayerManager::RemovePlayer(
int slot)
24 auto it = _playersBySlot.find(slot);
25 if (it != _playersBySlot.end())
27 _playersBySteamId.erase(it->second->GetSteamID());
28 _playersBySlot.erase(it);
32Player* PlayerManager::GetPlayerBySlot(
int slot)
34 auto it = _playersBySlot.find(slot);
35 if (it != _playersBySlot.end())
37 return it->second.get();
43Player* PlayerManager::GetPlayerBySteamId(int64_t steamId)
45 auto it = _playersBySteamId.find(steamId);
46 if (it != _playersBySteamId.end())
54std::vector<Player*> PlayerManager::FindPlayersByName(
const std::string& name)
56 std::vector<Player*> results;
58 for (
const auto& [slot, player] : _playersBySlot)
60 if (StringUtils::ContainsIgnoreCase(player->GetName(), name))
62 results.push_back(player.get());
69std::vector<Player*> PlayerManager::GetAllPlayers()
71 std::vector<Player*> players;
72 players.reserve(_playersBySlot.size());
74 for (
const auto& [slot, player] : _playersBySlot)
76 players.push_back(player.get());
82size_t PlayerManager::GetPlayerCount()
const
84 return _playersBySlot.size();
87void PlayerManager::Clear()
89 _playersBySlot.clear();
90 _playersBySteamId.clear();