mirror of
https://github.com/Grasscutters/Cultivation.git
synced 2025-12-15 08:34:43 +01:00
arg update fixes
This commit is contained in:
@@ -2,29 +2,30 @@ use serde::{Deserialize, Serialize};
|
|||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::string::String;
|
use std::string::String;
|
||||||
|
|
||||||
|
// Config may not exist, or may be old, so it's okay if these are optional
|
||||||
#[derive(Serialize, Deserialize, Debug)]
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
pub struct Configuration {
|
pub struct Configuration {
|
||||||
pub toggle_grasscutter: bool,
|
pub toggle_grasscutter: Option<bool>,
|
||||||
pub game_install_path: String,
|
pub game_install_path: Option<String>,
|
||||||
pub grasscutter_with_game: bool,
|
pub grasscutter_with_game: Option<bool>,
|
||||||
pub grasscutter_path: String,
|
pub grasscutter_path: Option<String>,
|
||||||
pub java_path: String,
|
pub java_path: Option<String>,
|
||||||
pub close_action: u64,
|
pub close_action: Option<u64>,
|
||||||
pub startup_launch: bool,
|
pub startup_launch: Option<bool>,
|
||||||
pub last_ip: String,
|
pub last_ip: Option<String>,
|
||||||
pub last_port: String,
|
pub last_port: Option<String>,
|
||||||
pub language: String,
|
pub language: Option<String>,
|
||||||
pub customBackground: String,
|
pub customBackground: Option<String>,
|
||||||
pub cert_generated: bool,
|
pub cert_generated: Option<bool>,
|
||||||
pub theme: String,
|
pub theme: Option<String>,
|
||||||
pub https_enabled: bool,
|
pub https_enabled: Option<bool>,
|
||||||
pub debug_enabled: bool,
|
pub debug_enabled: Option<bool>,
|
||||||
pub patch_rsa: bool,
|
pub patch_rsa: Option<bool>,
|
||||||
pub use_internal_proxy: bool,
|
pub use_internal_proxy: Option<bool>,
|
||||||
pub wipe_login: bool,
|
pub wipe_login: Option<bool>,
|
||||||
pub horny_mode: bool,
|
pub horny_mode: Option<bool>,
|
||||||
pub auto_mongodb: bool,
|
pub auto_mongodb: Option<bool>,
|
||||||
pub un_elevated: bool,
|
pub un_elevated: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn config_path() -> PathBuf {
|
pub fn config_path() -> PathBuf {
|
||||||
@@ -37,7 +38,7 @@ pub fn config_path() -> PathBuf {
|
|||||||
|
|
||||||
pub fn get_config() -> Configuration {
|
pub fn get_config() -> Configuration {
|
||||||
let path = config_path();
|
let path = config_path();
|
||||||
let config = std::fs::read_to_string(path).unwrap();
|
let config = std::fs::read_to_string(path).unwrap_or("{}".to_string());
|
||||||
let config: Configuration = serde_json::from_str(&config).unwrap();
|
let config: Configuration = serde_json::from_str(&config).unwrap();
|
||||||
|
|
||||||
config
|
config
|
||||||
|
|||||||
@@ -105,15 +105,17 @@ async fn parse_args(inp: &Vec<String>) -> Result<Args, ArgsError> {
|
|||||||
patch::patch_game().await;
|
patch::patch_game().await;
|
||||||
}
|
}
|
||||||
|
|
||||||
if args.value_of("non-elevated-game")? {
|
if game_path.is_some() {
|
||||||
system_helpers::run_un_elevated(game_path.to_string(), Some(game_args))
|
if args.value_of("non-elevated-game")? {
|
||||||
} else {
|
system_helpers::run_un_elevated(game_path.unwrap().to_string(), Some(game_args))
|
||||||
system_helpers::run_program(game_path.to_string(), Some(game_args))
|
} else {
|
||||||
|
system_helpers::run_program(game_path.unwrap().to_string(), Some(game_args))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if args.value_of("server")? {
|
if args.value_of("server")? && config.grasscutter_path.is_some() && config.java_path.is_some() {
|
||||||
let server_jar = config.grasscutter_path;
|
let server_jar = config.grasscutter_path.unwrap();
|
||||||
let mut server_path = server_jar.clone();
|
let mut server_path = server_jar.clone();
|
||||||
// Strip jar name from path
|
// Strip jar name from path
|
||||||
if server_path.contains('/') {
|
if server_path.contains('/') {
|
||||||
@@ -124,7 +126,7 @@ async fn parse_args(inp: &Vec<String>) -> Result<Args, ArgsError> {
|
|||||||
let len = server_jar.rfind('\\').unwrap();
|
let len = server_jar.rfind('\\').unwrap();
|
||||||
server_path.truncate(len);
|
server_path.truncate(len);
|
||||||
}
|
}
|
||||||
let java_path = config.java_path;
|
let java_path = config.java_path.unwrap();
|
||||||
|
|
||||||
system_helpers::run_jar(server_jar, server_path.to_string(), java_path);
|
system_helpers::run_jar(server_jar, server_path.to_string(), java_path);
|
||||||
}
|
}
|
||||||
@@ -155,7 +157,7 @@ fn main() -> Result<(), ArgsError> {
|
|||||||
println!("You running as a non-elevated user. Some stuff will almost definitely not work.");
|
println!("You running as a non-elevated user. Some stuff will almost definitely not work.");
|
||||||
println!("===============================================================================");
|
println!("===============================================================================");
|
||||||
|
|
||||||
reopen_as_admin();
|
//reopen_as_admin();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup datadir/cultivation just in case something went funky and it wasn't made
|
// Setup datadir/cultivation just in case something went funky and it wasn't made
|
||||||
|
|||||||
@@ -52,7 +52,12 @@ pub async fn unpatch_game() -> bool {
|
|||||||
|
|
||||||
pub async fn get_game_rsa_path() -> Option<String> {
|
pub async fn get_game_rsa_path() -> Option<String> {
|
||||||
let config = config::get_config();
|
let config = config::get_config();
|
||||||
let mut game_folder = PathBuf::from(config.game_install_path);
|
|
||||||
|
if config.game_install_path.is_none() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut game_folder = PathBuf::from(config.game_install_path.unwrap());
|
||||||
game_folder.pop();
|
game_folder.pop();
|
||||||
|
|
||||||
Some(format!("{}/", game_folder.to_str().unwrap()).replace('\\', "/"))
|
Some(format!("{}/", game_folder.to_str().unwrap()).replace('\\', "/"))
|
||||||
|
|||||||
Reference in New Issue
Block a user