1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-05 12:10:55 +00:00

[MP] Fix disconnect_peer not doing the proper cleanup

Lower layers (cache, replication) were not being notified about the peer
being disconnected.
This commit is contained in:
Fabio Alessandrelli
2024-04-22 14:16:00 +02:00
parent 7529c0bec5
commit c6be5f130c

View File

@@ -425,11 +425,11 @@ void SceneMultiplayer::_del_peer(int p_id) {
void SceneMultiplayer::disconnect_peer(int p_id) {
ERR_FAIL_COND(multiplayer_peer.is_null() || multiplayer_peer->get_connection_status() != MultiplayerPeer::CONNECTION_CONNECTED);
if (pending_peers.has(p_id)) {
pending_peers.erase(p_id);
} else if (connected_peers.has(p_id)) {
connected_peers.erase(p_id);
}
// Block signals to avoid emitting peer_disconnected.
bool blocking = is_blocking_signals();
set_block_signals(true);
_del_peer(p_id);
set_block_signals(blocking);
multiplayer_peer->disconnect_peer(p_id);
}