use colored::Colorize; use tokio::sync::broadcast::Receiver; use werewolves_proto::{error::GameError, player::PlayerId}; use crate::{connection::JoinedPlayers, 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), } } }