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