diff --git a/src/games/genshin/states.rs b/src/games/genshin/states.rs index 245ea75..8ad7dab 100644 --- a/src/games/genshin/states.rs +++ b/src/games/genshin/states.rs @@ -27,6 +27,8 @@ pub enum LauncherState { disable_mhypbase: bool }, + TelemetryNotDisabled, + #[cfg(feature = "components")] WineNotInstalled, @@ -147,6 +149,11 @@ impl LauncherState { } } + // Check telemetry servers + if telemetry::is_disabled(params.game_edition)?.is_some() { + return Ok(Self::TelemetryNotDisabled); + } + // Check if update predownload available if let VersionDiff::Predownload { .. } = diff { Ok(Self::PredownloadAvailable { diff --git a/src/games/honkai/states.rs b/src/games/honkai/states.rs index 1bdea5d..3694779 100644 --- a/src/games/honkai/states.rs +++ b/src/games/honkai/states.rs @@ -18,6 +18,8 @@ pub enum LauncherState { PatchNotInstalled, PatchUpdateAvailable, + TelemetryNotDisabled, + #[cfg(feature = "components")] WineNotInstalled, @@ -73,6 +75,7 @@ impl LauncherState { return Ok(Self::MfplatPatchAvailable); } + // Check jadeite patch status if !jadeite::is_installed(¶ms.patch_folder) { return Ok(Self::PatchNotInstalled); } @@ -81,7 +84,12 @@ impl LauncherState { return Ok(Self::PatchUpdateAvailable); } - match jadeite::get_metadata()?.hsr.global.get_status(version) { + // Check telemetry servers + if telemetry::is_disabled()?.is_some() { + return Ok(Self::TelemetryNotDisabled); + } + + match jadeite::get_metadata()?.hi3rd.global.get_status(version) { JadeitePatchStatusVariant::Verified => Ok(Self::Launch), JadeitePatchStatusVariant::Unverified => Ok(Self::PatchNotVerified), JadeitePatchStatusVariant::Broken => Ok(Self::PatchBroken), diff --git a/src/games/star_rail/states.rs b/src/games/star_rail/states.rs index b2ddfc6..5f7d41c 100644 --- a/src/games/star_rail/states.rs +++ b/src/games/star_rail/states.rs @@ -17,6 +17,8 @@ pub enum LauncherState { PatchNotInstalled, PatchUpdateAvailable, + TelemetryNotDisabled, + #[cfg(feature = "components")] WineNotInstalled, @@ -72,6 +74,7 @@ impl LauncherState { // Check game patch status (params.status_updater)(StateUpdating::Patch); + // Check jadeite patch status if !jadeite::is_installed(¶ms.patch_folder) { return Ok(Self::PatchNotInstalled); } @@ -80,6 +83,11 @@ impl LauncherState { return Ok(Self::PatchUpdateAvailable); } + // Check telemetry servers + if telemetry::is_disabled(params.game_edition)?.is_some() { + return Ok(Self::TelemetryNotDisabled); + } + match jadeite::get_metadata()?.hsr.global.get_status(version) { JadeitePatchStatusVariant::Verified => { // Check if update predownload available