diff options
| author | 2026-01-14 15:34:55 +0800 | |
|---|---|---|
| committer | 2026-01-14 15:34:55 +0800 | |
| commit | 9b59469cfe0a46d127efd640142da249dafceec5 (patch) | |
| tree | ee9bc922aac716aa4b1c72a34cfc7023709bcfcf /src-tauri/src | |
| parent | 505e3485f3dfa31969651f7f281fde33e9843fe8 (diff) | |
| download | DropOut-9b59469cfe0a46d127efd640142da249dafceec5.tar.gz DropOut-9b59469cfe0a46d127efd640142da249dafceec5.zip | |
fix: prevent feature-based rules from being applied in library checks
Diffstat (limited to 'src-tauri/src')
| -rw-r--r-- | src-tauri/src/core/game_version.rs | 1 | ||||
| -rw-r--r-- | src-tauri/src/core/rules.rs | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src-tauri/src/core/game_version.rs b/src-tauri/src/core/game_version.rs index 572882f..31477a9 100644 --- a/src-tauri/src/core/game_version.rs +++ b/src-tauri/src/core/game_version.rs @@ -52,6 +52,7 @@ pub struct Library { pub struct Rule { pub action: String, // "allow" or "disallow" pub os: Option<OsRule>, + pub features: Option<serde_json::Value>, // Feature-based rules (e.g., is_demo_user, has_quick_plays_support) } #[derive(Debug, Deserialize)] diff --git a/src-tauri/src/core/rules.rs b/src-tauri/src/core/rules.rs index 877982a..71abda5 100644 --- a/src-tauri/src/core/rules.rs +++ b/src-tauri/src/core/rules.rs @@ -47,6 +47,13 @@ pub fn is_library_allowed(rules: &Option<Vec<Rule>>) -> bool { } fn rule_matches(rule: &Rule) -> bool { + // Feature-based rules (e.g., is_demo_user, has_quick_plays_support, is_quick_play_singleplayer) + // are not implemented in this launcher, so we return false for any rule that has features. + // This prevents adding arguments like --demo, --quickPlayPath, --quickPlaySingleplayer, etc. + if rule.features.is_some() { + return false; + } + match &rule.os { None => true, // No OS condition means it applies to all Some(os_rule) => { |