diff --git a/src/bin/client.rs b/src/bin/client.rs index d223c01..346b660 100644 --- a/src/bin/client.rs +++ b/src/bin/client.rs @@ -124,8 +124,8 @@ async fn main() -> Result<(), Box> { Some(ClientData::AvailableMoves(move_paths)) => todo!(), - Some(ClientData::TextMessage(content)) => { - info!("Got message from the server: {}", content); + Some(ClientData::TextMessage {sender, content}) => { + info!("[{}] - {}", sender, content); } Some(ClientData::GameEnd(game_result)) => { diff --git a/src/network/client.rs b/src/network/client.rs index 1abc5f4..0e434bb 100644 --- a/src/network/client.rs +++ b/src/network/client.rs @@ -48,7 +48,7 @@ pub enum ClientData { BoardView(BoardView), CurrentTurn(Uuid), - TextMessage(String), + TextMessage { sender: String, content: String }, } pub struct Client { @@ -66,7 +66,7 @@ impl Client { pub async fn new() -> Option { let settings = ClientSettings { server_url: SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 6767), - name: "Szymon".into(), + name: "Morbius".into(), }; let (conn_sender, conn_reciever) = @@ -169,14 +169,20 @@ impl Client { let _ = update_sender.send(ClientData::GameStart { identity }).await; } - ServerMessage::AvailableCaptures { captures } => todo!(), - ServerMessage::AvailableMoves { moves } => todo!(), - ServerMessage::BroadcastBoardState { board } => { - let _ = update_sender.send(ClientData::BoardView(board)).await; - }, ServerMessage::BroadcastCurrentTurn { active_player } => { let _ = update_sender.send(ClientData::CurrentTurn(active_player)).await; }, + ServerMessage::BroadcastBoardState { board } => { + let _ = update_sender.send(ClientData::BoardView(board)).await; + }, + + ServerMessage::BroadCastTextMessage {sender, content} => { + let _ = update_sender.send(ClientData::TextMessage {sender, content}).await; + } + + + ServerMessage::AvailableCaptures { captures } => todo!(), + ServerMessage::AvailableMoves { moves } => todo!(), ServerMessage::GameEnd { result } => todo!(), } } else { diff --git a/src/network/message.rs b/src/network/message.rs index bd581d0..61e6f12 100644 --- a/src/network/message.rs +++ b/src/network/message.rs @@ -50,9 +50,10 @@ pub enum ServerMessage { AvailableMoves { moves: Vec }, BroadcastBoardState { board: BoardView }, - BroadcastCurrentTurn { active_player: Uuid }, + BroadCastTextMessage { sender: String, content: String }, + GameEnd { result: GameResult }, } diff --git a/src/network/server.rs b/src/network/server.rs index 49d620d..8370699 100644 --- a/src/network/server.rs +++ b/src/network/server.rs @@ -204,6 +204,8 @@ impl Server { ClientMessage::TextMessage (content) => { info!("{} sent us a message: {}", addr, content); + let sender = self.connections[&addr].identity.name.clone(); + self.broadcast_text_message(sender, content).await; } } } else { @@ -362,6 +364,11 @@ impl Server { } } + async fn broadcast_text_message(&mut self, sender: String, content: String) { + let msg = Message::new(ServerMessage::BroadCastTextMessage { sender, content }); + self.broadcast_message(msg).await; + } + /* === Helper methods === */ async fn send_message(