diff --git a/mcmpmgr/src/main.rs b/mcmpmgr/src/main.rs index 77c59c9..ebf0657 100644 --- a/mcmpmgr/src/main.rs +++ b/mcmpmgr/src/main.rs @@ -72,6 +72,9 @@ enum Commands { /// Modloader override #[arg(long, short)] modloader: Option, + /// Side override + #[arg(long, short)] + side: Option }, /// Remove a mod from the modpack Remove { @@ -225,6 +228,7 @@ async fn main() -> anyhow::Result<()> { locked, mc_version, modloader, + side } => { let mut modpack_meta = ModpackMeta::load_from_current_directory()?; let old_modpack_meta = modpack_meta.clone(); @@ -242,6 +246,22 @@ async fn main() -> anyhow::Result<()> { if let Some(url) = url { mod_meta = mod_meta.url(&url); } + if let Some(side) = side { + match side { + DownloadSide::Both => { + mod_meta.server_side = Some(true); + mod_meta.client_side = Some(true); + }, + DownloadSide::Server => { + mod_meta.server_side = Some(true); + mod_meta.client_side = Some(false); + }, + DownloadSide::Client => { + mod_meta.server_side = Some(false); + mod_meta.client_side = Some(true); + }, + } + } for provider in providers.into_iter() { mod_meta = mod_meta.provider(provider); } diff --git a/mcmpmgr/src/providers/modrinth.rs b/mcmpmgr/src/providers/modrinth.rs index 38cea9b..bd8d54b 100644 --- a/mcmpmgr/src/providers/modrinth.rs +++ b/mcmpmgr/src/providers/modrinth.rs @@ -198,8 +198,12 @@ impl Modrinth { } else { None }, - server_side: project.server_side != "unsupported", - client_side: project.client_side != "unsupported", + server_side: mod_meta + .server_side + .unwrap_or(project.server_side != "unsupported"), + client_side: mod_meta + .client_side + .unwrap_or(project.client_side != "unsupported"), }) }