Display the minecraft server version
[minecraft_web.git] / backend / src / minecraft_controller.rs
index 54143e8..545e8c2 100644 (file)
@@ -9,6 +9,7 @@ pub struct MinecraftExe {
     uptime: u64, // [s].\r
     world_size: u64, // [B].\r
     active_players: Vec<String>,\r
+    version: String,\r
     last_backup: Option<SystemTime>,\r
 }\r
 \r
@@ -40,6 +41,10 @@ impl MinecraftExe {
         }\r
     }\r
 \r
+    pub fn format_version(&self) -> String {\r
+        self.version.clone()\r
+    }\r
+\r
     pub fn format_last_backup(&self) -> String {\r
         match self.last_backup {\r
             Some(t) => {\r
@@ -73,6 +78,7 @@ const MINECRAFT_PROCESS_NAME: &str = "java";
 \r
 struct StatusFromRcon {\r
     players: Vec<String>,\r
+    version: String,\r
 }\r
 \r
 fn get_status_from_rcon(rcon_password: &str) -> StatusFromRcon {\r
@@ -98,12 +104,20 @@ fn get_status_from_rcon(rcon_password: &str) -> StatusFromRcon {
                                 println!("Error from 'list' command");\r
                                 Vec::new()\r
                             },\r
+                        },\r
+                    version:\r
+                        match client.send_command("list".to_string()) {\r
+                            Ok(resp) => resp.body,\r
+                            Err(_e) => {\r
+                                println!("Error from 'version' command");\r
+                                String::new()\r
+                            }\r
                         }\r
                 }\r
             },\r
             Err(_e) => {\r
                 println!("Authentication error");\r
-                StatusFromRcon { players: Vec::new() }\r
+                StatusFromRcon { players: Vec::new(), version: String::new() }\r
             },\r
         };\r
 \r
@@ -145,6 +159,7 @@ pub fn get_minecraft_executable_information(world_path: &str, backup_path: &str,
                 uptime: std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap().as_secs() - process.start_time(),\r
                 world_size,\r
                 active_players: status_from_rcon.players,\r
+                version: status_from_rcon.version,\r
                 last_backup: get_last_backup_datetime(backup_path)\r
             }\r
         )\r