[ServerCommandHandler] Now deletes ServerPlayer instance on disconnection.
This commit is contained in:
parent
879dc28eb2
commit
47d57f7fc3
@ -128,22 +128,24 @@ void Server::handleClientMessages() {
|
||||
|
||||
// DEBUG("TCP message received:", Network::commandToString(command));
|
||||
|
||||
if (command == Network::Command::ClientDisconnect) {
|
||||
m_selector.remove(*client.tcpSocket);
|
||||
m_info.removeClient(client.id);
|
||||
|
||||
// if (m_info.clients().size() == 0) {
|
||||
// // m_tcpListener.close();
|
||||
// m_isRunning = false;
|
||||
// }
|
||||
|
||||
--i;
|
||||
}
|
||||
|
||||
if (m_isRunning)
|
||||
for (auto &it : m_commands)
|
||||
if (m_isRunning) {
|
||||
for (auto &it : m_commands) {
|
||||
if (command == it.first)
|
||||
it.second(client, packet);
|
||||
|
||||
if (command == Network::Command::ClientDisconnect) {
|
||||
m_selector.remove(*client.tcpSocket);
|
||||
m_info.removeClient(client.id);
|
||||
|
||||
// if (m_info.clients().size() == 0) {
|
||||
// // m_tcpListener.close();
|
||||
// m_isRunning = false;
|
||||
// }
|
||||
|
||||
--i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -113,6 +113,10 @@ void ServerCommandHandler::setupCallbacks() {
|
||||
// m_world.sendSpawnData(client, player);
|
||||
});
|
||||
|
||||
m_server.setCommandCallback(Network::Command::ClientDisconnect, [this](Client &client, sf::Packet &) {
|
||||
m_players.erase(client.id);
|
||||
});
|
||||
|
||||
m_server.setCommandCallback(Network::Command::ChunkRequest, [this](Client &client, sf::Packet &packet) {
|
||||
s32 cx, cy, cz;
|
||||
packet >> cx >> cy >> cz;
|
||||
|
Loading…
x
Reference in New Issue
Block a user