From d0ac4bb93bda6250f5032aec06aeef6b11957fd1 Mon Sep 17 00:00:00 2001 From: Adam Doyle Date: Thu, 21 Nov 2024 13:04:24 -0500 Subject: [PATCH] don't hydrate client if user is disconnected --- server/src/user_handler.rs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/server/src/user_handler.rs b/server/src/user_handler.rs index b7dc0d0..df15918 100644 --- a/server/src/user_handler.rs +++ b/server/src/user_handler.rs @@ -177,12 +177,24 @@ impl UserHandler { .insert(addr, new_user.clone()); // Hydrate client - let tx = self.state.tx_game_handler.clone(); - let msg = GameHandlerMessage::BroadcastGamesUpdate(); - tokio::spawn(async move { tx.send(msg).await }); - let msg = GameHandlerMessage::SendCardPacks(dm_tx.clone()); - if let Err(e) = self.state.tx_game_handler.send(msg).await { - tracing::error!("Error contacing game handler {}", e) + if !dm_tx.is_closed() { + if let Err(e) = self + .state + .tx_game_handler + .send(GameHandlerMessage::BroadcastGamesUpdate()) + .await + { + tracing::error!("Error contacing game handler {}", e) + } + + if let Err(e) = self + .state + .tx_game_handler + .send(GameHandlerMessage::SendCardPacks(dm_tx.clone())) + .await + { + tracing::error!("Error contacing game handler {}", e) + } } // Broadcast new user's existence