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