client PlayerManager

This commit is contained in:
2025-08-21 20:51:13 +02:00
parent fd08833f3f
commit 4fe2e25029
11 changed files with 100 additions and 7 deletions

View File

@@ -30,8 +30,7 @@ void PlayerManager::ConnectionHandler::Handle(const protocol::packets::PlayerLog
void PlayerManager::ConnectionHandler::Handle(const protocol::packets::DisconnectPacket& a_Packet) {
std::cout << "[Server] " << +m_Player << " wants to disconnect !\n";
m_Socket.Disconnect(m_Player);
m_Players.erase(m_Player);
Disconnect(m_Players, m_Socket, m_Player);
}
PlayerManager::PlayerManager(const std::shared_ptr<IServerSocket>& a_Socket) : m_Socket(a_Socket) {
@@ -39,11 +38,16 @@ PlayerManager::PlayerManager(const std::shared_ptr<IServerSocket>& a_Socket) : m
[this](PlayerID a_PlayerId) { return std::make_unique<ConnectionHandler>(m_Players, *m_Socket, a_PlayerId); });
}
void PlayerManager::ConnectionHandler::Disconnect(std::map<PlayerID, PlayerInfo>& a_Players, IServerSocket& a_Socket, PlayerID a_Player) {
a_Socket.Disconnect(a_Player);
a_Socket.Broadcast(protocol::packets::PlayerLeavePacket(a_Player));
a_Players.erase(a_Player);
}
PlayerManager::~PlayerManager() {}
void PlayerManager::RemovePlayer(PlayerID a_Player) {
m_Socket->Disconnect(a_Player);
m_Players.erase(a_Player);
ConnectionHandler::Disconnect(m_Players, *m_Socket, a_Player);
}
PlayerInfo PlayerManager::GetPlayer(PlayerID a_Player) {