}\r
\r
pub fn format_active_players(&self) -> String {\r
+ /* Commented because the player list isn't correct (the number is).\r
if self.active_players.len() == 0 {\r
String::from("<none>")\r
} else {\r
self.active_players.join(", ")\r
- }\r
+ }*/\r
+ self.active_players.len().to_string()\r
}\r
\r
pub fn format_last_backup(&self) -> String {\r
}\r
\r
const VALHEIM_PROCESS_NAME: &str = "valheim_server";\r
+\r
+#[cfg(target_os = "linux")]\r
const STRING_BEFORE_CHARACTER_NAME: &str = "Got character ZDOID from";\r
+\r
+#[cfg(target_os = "linux")]\r
const STRING_BEFORE_NB_OF_CONNECTIONS: &str = "Connections";\r
\r
+// It doesn't work for the moment, it only scan the connection event and do not treat disconnections.\r
#[cfg(target_os = "linux")]\r
fn get_active_players() -> Vec<String> {\r
let mut journal =\r
\r
journal.seek_tail().unwrap();\r
\r
- let mut number_of_connections = 0;\r
+ let mut number_of_connections = -1i32;\r
let mut players : Vec<String> = Vec::new();\r
\r
loop {\r
let player_name = String::from(character_str.get(0..pos_end).unwrap());\r
if !players.contains(&player_name) {\r
players.push(player_name);\r
- if players.len() == number_of_connections {\r
+ if players.len() as i32 == number_of_connections {\r
return players;\r
}\r
}\r
else if let Some(pos) = mess.find(STRING_BEFORE_NB_OF_CONNECTIONS) {\r
let nb_of_connections_str = mess.get(pos+STRING_BEFORE_NB_OF_CONNECTIONS.len()+1..).unwrap();\r
if let Some(pos_end) = nb_of_connections_str.find(' ') {\r
- if let Ok(n) = nb_of_connections_str.get(0..pos_end).unwrap().parse() {\r
- if n > number_of_connections {\r
+ if let Ok(n) = nb_of_connections_str.get(0..pos_end).unwrap().parse::<i32>() {\r
+ if number_of_connections == -1 {\r
number_of_connections = n;\r
- }\r
- if players.len() >= number_of_connections {\r
- return players;\r
+\r
+ if players.len() as i32 >= number_of_connections {\r
+ return players;\r
+ }\r
}\r
}\r
}\r