From b5468ef0379a5433f0fac90c5837ecfd1bf8705d Mon Sep 17 00:00:00 2001 From: Joshua Higgins Date: Fri, 30 Jan 2026 12:31:50 -0500 Subject: [PATCH] fix: remove reservations on tournament start and when the reservation is fullfilled --- src/server.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/server.rs b/src/server.rs index 4e0bbbe..b4cdb48 100644 --- a/src/server.rs +++ b/src/server.rs @@ -167,6 +167,11 @@ impl Server { opponent.current_match = Some(match_id); opponent.color = !client.color; + self.reservations + .write() + .await + .retain(|(p1, p2)| !(p1 == &client.username && p2 == &opponent.username)); + return Ok(()); } @@ -703,6 +708,9 @@ impl Server { let mut tournament_guard = self.tournament.write().await; *tournament_guard = Some(Arc::new(RwLock::new(tourney))); + // Clear any pending reservations when a tournament starts + self.reservations.write().await.clear(); + self.broadcast_message_all_observers(&format!("TOURNAMENT:START:{}", tournament_type)) .await; Ok(()) @@ -851,6 +859,11 @@ impl Server { player2.ready = false; player2.current_match = Some(match_id); player2.color = !player1.color; + + self.reservations + .write() + .await + .retain(|(p1, p2)| !(p1 == &player1_username && p2 == &player2_username)); } }