Start to create WS client for cli_player
This commit is contained in:
		@@ -39,6 +39,8 @@ impl Player for BotPlayer {
 | 
			
		||||
        true
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn opponent_connected(&self) {}
 | 
			
		||||
 | 
			
		||||
    fn set_other_player_name(&self, _name: &str) {}
 | 
			
		||||
 | 
			
		||||
    fn query_boats_layout(&self, rules: &GameRules) {
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,8 @@ pub trait Player {
 | 
			
		||||
 | 
			
		||||
    fn is_bot(&self) -> bool;
 | 
			
		||||
 | 
			
		||||
    fn opponent_connected(&self);
 | 
			
		||||
 | 
			
		||||
    fn set_other_player_name(&self, name: &str);
 | 
			
		||||
 | 
			
		||||
    fn query_boats_layout(&self, rules: &GameRules);
 | 
			
		||||
@@ -240,6 +242,9 @@ where
 | 
			
		||||
        self.players.push(msg.0);
 | 
			
		||||
 | 
			
		||||
        if self.players.len() == 2 {
 | 
			
		||||
            self.players[0].opponent_connected();
 | 
			
		||||
            self.players[1].opponent_connected();
 | 
			
		||||
 | 
			
		||||
            self.query_boats_disposition();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,10 @@ impl Player for HumanPlayer {
 | 
			
		||||
        false
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn opponent_connected(&self) {
 | 
			
		||||
        self.player.do_send(ServerMessage::OpponentConnected);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn set_other_player_name(&self, name: &str) {
 | 
			
		||||
        self.player.do_send(ServerMessage::SetOpponentName {
 | 
			
		||||
            name: name.to_string(),
 | 
			
		||||
 
 | 
			
		||||
@@ -47,6 +47,7 @@ pub enum ServerMessage {
 | 
			
		||||
    },
 | 
			
		||||
    InvalidInviteCode,
 | 
			
		||||
    WaitingForAnotherPlayer,
 | 
			
		||||
    OpponentConnected,
 | 
			
		||||
    SetOpponentName {
 | 
			
		||||
        name: String,
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -196,6 +196,9 @@ impl BotClient {
 | 
			
		||||
                    log::debug!("Got invalid invite code!");
 | 
			
		||||
                    return Ok(ClientEndResult::InvalidInviteCode);
 | 
			
		||||
                }
 | 
			
		||||
                ServerMessage::OpponentConnected => {
 | 
			
		||||
                    log::debug!("Opponent connected");
 | 
			
		||||
                }
 | 
			
		||||
                ServerMessage::QueryBoatsLayout { rules } => {
 | 
			
		||||
                    assert_eq!(&rules, &self.requested_rules);
 | 
			
		||||
                    log::debug!("Server requested boats layout");
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,12 @@
 | 
			
		||||
use std::error::Error;
 | 
			
		||||
use std::fmt::Display;
 | 
			
		||||
use std::io::ErrorKind;
 | 
			
		||||
 | 
			
		||||
pub mod network_utils;
 | 
			
		||||
pub mod string_utils;
 | 
			
		||||
 | 
			
		||||
pub type Res<E = ()> = Result<E, Box<dyn Error>>;
 | 
			
		||||
 | 
			
		||||
pub fn boxed_error<D: Display>(msg: D) -> Box<dyn Error> {
 | 
			
		||||
    Box::new(std::io::Error::new(ErrorKind::Other, msg.to_string()))
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user