use colored::Colorize; use tokio::sync::broadcast::Receiver; use werewolves_proto::error::GameError; use crate::runner::IdentifiedClientMessage; pub struct PlayerIdComms { // joined_players: JoinedPlayers, message_recv: Receiver, // connect_recv: tokio::sync::broadcast::Receiver<(PlayerId, bool)>, } impl PlayerIdComms { pub fn new( // joined_players: JoinedPlayers, message_recv: Receiver, // connect_recv: tokio::sync::broadcast::Receiver<(PlayerId, bool)>, ) -> Self { Self { // joined_players, message_recv, // connect_recv, } } pub async fn recv(&mut self) -> Result { match self .message_recv .recv() .await .map_err(|err| GameError::GenericError(err.to_string())) { Ok(msg) => { log::debug!("got message: {}", format!("{msg:?}").dimmed()); Ok(msg) } Err(err) => Err(err), } } }