feat: add osu skin retrieval functionality and integrate into loading and setup processes

This commit is contained in:
2025-07-04 10:16:51 +02:00
parent 8c5e7ca6f2
commit 41608afae2
6 changed files with 53 additions and 11 deletions

View File

@@ -198,6 +198,15 @@ pub fn get_skins_count(folder: String) -> Option<u64> {
return Some(count);
}
#[tauri::command]
pub fn get_osu_skin(folder: String) -> String {
let path = PathBuf::from(folder);
let osu_user_config = get_osu_user_config(path.clone());
return osu_user_config
.and_then(|config| config.get("Skin").cloned())
.unwrap_or_else(|| "Default".to_string());
}
#[tauri::command]
pub fn get_osu_version(folder: String) -> String {
let path = PathBuf::from(folder);
@@ -342,18 +351,18 @@ pub fn run_osu(folder: String) -> Result<(), String> {
#[cfg(windows)]
let mut game_process = Command::new(osu_exe_path)
.creation_flags(DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
.arg("-devserver")
.arg("ez-pp.farm")
.spawn()
.map_err(|e| e.to_string())?;
.creation_flags(DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP)
.arg("-devserver")
.arg("ez-pp.farm")
.spawn()
.map_err(|e| e.to_string())?;
#[cfg(not(windows))]
let mut game_process = Command::new(osu_exe_path)
.arg("-devserver")
.arg("ez-pp.farm")
.spawn()
.map_err(|e| e.to_string())?;
.arg("-devserver")
.arg("ez-pp.farm")
.spawn()
.map_err(|e| e.to_string())?;
game_process.wait().map_err(|e| e.to_string())?;

View File

@@ -6,7 +6,7 @@ pub mod utils;
use crate::commands::{
find_osu_installation, get_beatmapsets_count, get_hwid, get_osu_release_stream,
get_osu_version, get_skins_count, run_osu, run_osu_updater, set_osu_config_values,
set_osu_user_config_values, valid_osu_folder,
set_osu_user_config_values, valid_osu_folder, get_osu_skin
};
#[cfg_attr(mobile, tauri::mobile_entry_point)]
@@ -36,6 +36,7 @@ pub fn run() {
set_osu_user_config_values,
run_osu_updater,
run_osu,
get_osu_skin
])
.plugin(tauri_plugin_fs::init())
.plugin(tauri_plugin_dialog::init())