client PlayerManager
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user