From 514db6fd02422fac06c2bf5fc2653da5f73026d9 Mon Sep 17 00:00:00 2001 From: "NG (Graham)" Date: Sat, 7 Feb 2026 11:53:04 -0500 Subject: [PATCH] Skip sending disconnect packet to already disconnected player --- rc_multiplayer/src/matches/generic.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rc_multiplayer/src/matches/generic.rs b/rc_multiplayer/src/matches/generic.rs index c1e65f3..c16378e 100644 --- a/rc_multiplayer/src/matches/generic.rs +++ b/rc_multiplayer/src/matches/generic.rs @@ -645,7 +645,7 @@ impl GenericGamemodeEngine { } } - async fn on_end_connection(&self, user_id: i32, _is_unregister: bool) -> bool { + async fn on_end_connection(&self, user_id: i32, is_unregister: bool) -> bool { if let Some(player_id) = self.user_key_by_user_id(user_id) { let conn_opt = self.users.write().await.remove(&player_id); if let Some(conn) = conn_opt { @@ -713,7 +713,9 @@ impl GenericGamemodeEngine { if let Err(e) = conn.user.save_player_connected_status(self.game_guid(), false).await { log::error!("Failed to mark player {} (user {}) as disconnected in game {}: {}", player_id, user_id, self.game_guid(), e); } - conn.connection.connection.goodbye(&conn.connection.sender).await; + if !is_unregister { + conn.connection.connection.goodbye(&conn.connection.sender).await; + } return has_active_connections; } }