diff --git a/src/main.rs b/src/main.rs index d74e49c..cf620b8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,7 @@ mod models; mod utils; +use crate::models::config::{Config, Mods, Server}; use crate::models::fabric::FabricVersions; use crate::{ models::vanilla::{VanillaVersionDetail, VanillaVersionType, VanillaVersions}, @@ -43,6 +44,7 @@ async fn main() -> Result<(), Box> { Commands::Init { name: project_name } => { tokio::fs::create_dir(&project_name).await?; std::env::set_current_dir(&project_name)?; + let mut config_file = tokio::fs::File::create("mcsm.toml").await?; let loaders = vec!["Vanilla", "Fabric"]; let loader_index = Select::with_theme(&ColorfulTheme::default()) @@ -125,6 +127,18 @@ async fn main() -> Result<(), Box> { Ok(()) }) .await?; + + let config = Config { + server: Server { + version: release_version_names[version_index].to_string(), + loader: loaders[loader_index].to_string(), + loader_version: None, + }, + mods: Mods {}, + }; + config_file + .write_all(toml::to_string(&config)?.as_bytes()) + .await?; } 1 => { const URL: &str = "https://meta.fabricmc.net/v2/versions"; @@ -196,6 +210,18 @@ async fn main() -> Result<(), Box> { Ok(()) }) .await?; + + let config = Config { + server: Server { + version: game_version, + loader: loaders[loader_index].to_string(), + loader_version: Some(loader_version), + }, + mods: Mods {}, + }; + config_file + .write_all(toml::to_string(&config)?.as_bytes()) + .await?; } _ => return Err("Invalid selection".into()), } diff --git a/src/models/config.rs b/src/models/config.rs new file mode 100644 index 0000000..3505350 --- /dev/null +++ b/src/models/config.rs @@ -0,0 +1,17 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Deserialize, Serialize)] +pub struct Config { + pub server: Server, + pub mods: Mods, +} + +#[derive(Deserialize, Serialize)] +pub struct Server { + pub version: String, + pub loader: String, + pub loader_version: Option, +} + +#[derive(Deserialize, Serialize)] +pub struct Mods {} diff --git a/src/models/mod.rs b/src/models/mod.rs index 0855604..4120088 100644 --- a/src/models/mod.rs +++ b/src/models/mod.rs @@ -1,2 +1,3 @@ +pub mod config; pub mod fabric; pub mod vanilla;