Display the minecraft server version
[minecraft_web.git] / backend / src / main.rs
index 53fbe68..4ce1508 100644 (file)
@@ -1,7 +1,6 @@
 extern crate askama;
 
 use std::{ sync::Mutex, env::args, fs::File, io::prelude::* };
-
 use actix_files as fs;
 use actix_web::{ get, web, Responder, middleware, App, HttpServer };
 use askama::Template;
@@ -10,13 +9,13 @@ use serde::{ Deserialize, Serialize };
 use cached::proc_macro::cached;
 
 mod consts;
-mod tests;
 mod minecraft_controller;
 
 #[derive(Template)]
 #[template(path = "main.html")]
 struct MainTemplate {
     text_status: String,
+    version: String,
     memory: String,
     load_average: String,
     uptime: String,
@@ -28,18 +27,19 @@ struct MainTemplate {
 const VALUE_UNKNOWN: &str = "-";
 
 #[cached(size = 1, time = 10)]
-fn get_minecraft_executable_information_cached(world_path: String, backup_path: String) -> Option<minecraft_controller::MinecraftExe> {
-    minecraft_controller::get_minecraft_executable_information(&world_path, &backup_path)
+fn get_minecraft_executable_information_cached(world_path: String, backup_path: String, rcon_password: String) -> Option<minecraft_controller::MinecraftExe> {
+    minecraft_controller::get_minecraft_executable_information(&world_path, &backup_path, &rcon_password)
 }
 
 #[get("/")]
 async fn main_page(config_shared: web::Data<Mutex<Config>>) -> impl Responder {
     let config = config_shared.lock().unwrap();
 
-    match get_minecraft_executable_information_cached(config.world_path.clone(), config.backup_path.clone()) {
+    match get_minecraft_executable_information_cached(config.world_path.clone(), config.backup_path.clone(), config.rcon_password.clone()) {
         Some(info) =>
             MainTemplate {
                 text_status: String::from("Minecraft server is up and running :)"),
+                version: info.format_version(),
                 memory: info.format_memory(),
                 load_average: info.format_load_average(),
                 uptime: info.format_uptime(),
@@ -51,12 +51,14 @@ async fn main_page(config_shared: web::Data<Mutex<Config>>) -> impl Responder {
             let value_unknown = String::from(VALUE_UNKNOWN);
             MainTemplate {
                 text_status: String::from("Minecraft server is down :("),
+                version: value_unknown.clone(),
                 memory: value_unknown.clone(),
                 load_average: value_unknown.clone(),
                 uptime: value_unknown.clone(),
                 world_size: value_unknown.clone(),
                 active_players: value_unknown.clone(),
-                last_backup: value_unknown.clone() }
+                last_backup: value_unknown.clone()
+            }
         }
     }
 }
@@ -144,7 +146,7 @@ fn process_args(config: &Config) -> bool {
         print_usage();
         return true
     } else if args.iter().any(|arg| arg == "--status") {
-        println!("{:?}", minecraft_controller::get_minecraft_executable_information(&config.world_path, &config.backup_path));
+        println!("{:?}", minecraft_controller::get_minecraft_executable_information(&config.world_path, &config.backup_path, &config.rcon_password));
         return true
     }