From 8ee7242726d050a5cf430c5dd21efbed4f47ee18 Mon Sep 17 00:00:00 2001 From: szymon Date: Mon, 17 Aug 2026 19:44:09 +0200 Subject: [PATCH] fix: remove double sending board state --- src/bin/client.rs | 4 +--- src/network/client.rs | 8 ++------ src/network/message.rs | 29 +++++++---------------------- src/network/server.rs | 8 +++----- 4 files changed, 13 insertions(+), 36 deletions(-) diff --git a/src/bin/client.rs b/src/bin/client.rs index 448fb69..d223c01 100644 --- a/src/bin/client.rs +++ b/src/bin/client.rs @@ -96,13 +96,11 @@ async fn main() -> Result<(), Box> { match msg { Some(ClientData::GameStart { identity, - board_view, }) => { info!( - "Got new identity: {} and board_view. Game is about to start!", + "Got new identity: {}", identity ); - println!("{}", board_view.to_string(&identity.id)); indentity = Some(identity); } diff --git a/src/network/client.rs b/src/network/client.rs index 361d597..1abc5f4 100644 --- a/src/network/client.rs +++ b/src/network/client.rs @@ -39,10 +39,7 @@ pub enum ClientCommands { /// Data that network client gives to normal client. I have no better idea for this name, hence this /// comment pub enum ClientData { - GameStart { - identity: NetworkIdentity, - board_view: BoardView, - }, + GameStart { identity: NetworkIdentity }, GameEnd(GameResult), AvailableCaptures(Vec), @@ -167,10 +164,9 @@ impl Client { ServerMessage::GameStart { identity, - board_view, } => { debug!("Got GameStart message! Identity: {}", identity); - let _ = update_sender.send(ClientData::GameStart { identity, board_view }).await; + let _ = update_sender.send(ClientData::GameStart { identity }).await; } ServerMessage::AvailableCaptures { captures } => todo!(), diff --git a/src/network/message.rs b/src/network/message.rs index ff9dbf9..bd581d0 100644 --- a/src/network/message.rs +++ b/src/network/message.rs @@ -42,33 +42,18 @@ where pub enum ServerMessage { RequestHandshake, AcceptHandshake, - DeclineHandshake { - reason: String, - }, + DeclineHandshake { reason: String }, - GameStart { - identity: NetworkIdentity, - board_view: BoardView, - }, + GameStart { identity: NetworkIdentity }, - AvailableCaptures { - captures: Vec, - }, - AvailableMoves { - moves: Vec, - }, + AvailableCaptures { captures: Vec }, + AvailableMoves { moves: Vec }, - BroadcastBoardState { - board: BoardView, - }, + BroadcastBoardState { board: BoardView }, - BroadcastCurrentTurn { - active_player: Uuid, - }, + BroadcastCurrentTurn { active_player: Uuid }, - GameEnd { - result: GameResult, - }, + GameEnd { result: GameResult }, } #[derive(Deserialize, Serialize, Debug, PartialEq, Eq, Clone)] diff --git a/src/network/server.rs b/src/network/server.rs index 4c31a09..49d620d 100644 --- a/src/network/server.rs +++ b/src/network/server.rs @@ -195,11 +195,11 @@ impl Server { }, ClientMessage::RequestCapture { capture_path } => { - self.process_capture(capture_path); + self.process_capture(capture_path).await; } ClientMessage::RequestMove { from, to } => { - self.process_move(from, to); + self.process_move(from, to).await; } ClientMessage::TextMessage (content) => { @@ -232,7 +232,6 @@ impl Server { let game_master = GameMaster::new(&names[0], &names[1]); let names_and_ids: Vec<(String, Uuid)> = game_master.get_players_names_and_ids(); - let board_view: BoardView = game_master.get_board_view(); let mut msgs: Vec<(SocketAddr, Result, postcard::Error>)> = vec![]; @@ -245,7 +244,6 @@ impl Server { *addr, Message::new(ServerMessage::GameStart { identity: networkidentity.identity.clone(), - board_view: board_view.clone(), }), )); } @@ -324,7 +322,7 @@ impl Server { "{} signaled readiness. Currently ready: {}/{}", addr, self.state.ready_count, self.settings.max_connections ); - self.connections.get_mut(&addr).expect("Couldn't get the identity of the ready player. I guess this should never happen so i'm panicking like a little bitch").identity.is_ready = true; + self.connections.get_mut(&addr).expect("Couldn't get the identity of the ready player. I guess this should never happen so i'm panicking like a little bitch").identity.is_ready = true; // TODO! This sometimes happens for some reason (when there is a game going, both player leave and someone tries to join) if self.state.ready_count == self.settings.max_connections { info!("All players are ready! Changing state to ServerStage::Game");