diff --git a/server/src/game/mod.rs b/server/src/game/mod.rs index 46656447f..2b5dcad82 100644 --- a/server/src/game/mod.rs +++ b/server/src/game/mod.rs @@ -19,6 +19,7 @@ use rand::seq::SliceRandom; use rand::thread_rng; use crate::lobby::LobbyPlayer; +use crate::log; use crate::packet::{ToClientPacket, GameOverReason}; use chat::{ChatMessage, ChatGroup}; use player::PlayerReference; @@ -71,7 +72,10 @@ impl Game { player.sender.clone(), match roles.get(player_index){ Some(role) => *role, - None => RoleOutline::Any.get_random_role(&settings.excluded_roles, &roles).expect("Any should have open roles"), + None => { + log!(error "Game::new"; "Failed to generate role. rolelist wasnt big enough for number of players"); + RoleOutline::Any.get_random_role(&settings.excluded_roles, &roles).expect("Any should have open roles") + }, } ); players.push(new_player); diff --git a/server/src/lib.rs b/server/src/lib.rs index a8a8146d7..e592930f5 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -8,6 +8,14 @@ pub mod log { #[macro_export] /// Log a statement to the console. /// When logging using this macro, a timestamp and possibly a marker is added to the message. + /// + /// # Examples + /// ``` + /// use crate::log; + /// log!(error "Error location"; "Error message"); + /// log!(error "Game::new"; "Failed to generate role. rolelist wasnt big enough for number of players"); + /// log!(info "Listener"; "{}: {}", &connection.get_address().to_string(), message); + /// ``` macro_rules! log { // Each case in this macro definition is for a different log marker. // None