diff --git a/src/bin/client.rs b/src/bin/client.rs index d278e6b..0068cb8 100644 --- a/src/bin/client.rs +++ b/src/bin/client.rs @@ -72,6 +72,7 @@ fn main() { client.display_sender.send(DisplayMessage::Exit).unwrap(); return; } + client.display_sender.send(DisplayMessage::Clear).unwrap(); if client.player.role == UserRole::Black { client.side = Color::Black; } @@ -104,14 +105,14 @@ fn main() { } if is_player_turn_loop || client.player.role == UserRole::Spectator { let mut message = String::from(""); - client - .opponent_name - .clone() - .map(|name| message.push_str(&format!("{} played", name))); - client - .last_move - .clone() - .map(|chessmove| message.push_str(&format!(" {}", chessmove))); + let opponent_name = client.opponent_name.clone(); + if opponent_name.is_some() { + message.push_str(&format!("{} played", opponent_name.expect("is some"))); + client + .last_move + .clone() + .map(|chessmove| message.push_str(&format!(" {}", chessmove))); + } if message.len() > 0 { display_sender .send(DisplayMessage::Information(message)) @@ -149,6 +150,10 @@ fn main() { Ok(position) => current_position = position, Err(_) => break, }; + //clear message + display_sender + .send(DisplayMessage::Message(String::default())) + .unwrap(); } else { match wait_for_next_move(&mut client, &mut stream) { Ok(position) => current_position = position, diff --git a/src/bin/server.rs b/src/bin/server.rs index 4bf418d..bd8c574 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -247,7 +247,11 @@ fn play(stream: &mut UnixStream, server: &Server, movestr: String) { println!("User tried to play {}", movestr.clone()); match clichess::try_to_play_move(&chess, movestr.clone()) { Ok(played_chess) => *chess = played_chess, - Err(e) => println!("Error: {}", e), + Err(e) => { + println!("Error: {}", e); + send_ko(stream); + return; + } }; let player_name = player .expect("current server is in the server list")