aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src-tauri/src
diff options
context:
space:
mode:
authorHsiangNianian <i@jyunko.cn>2026-01-14 15:34:55 +0800
committerHsiangNianian <i@jyunko.cn>2026-01-14 15:34:55 +0800
commit9b59469cfe0a46d127efd640142da249dafceec5 (patch)
treeee9bc922aac716aa4b1c72a34cfc7023709bcfcf /src-tauri/src
parent505e3485f3dfa31969651f7f281fde33e9843fe8 (diff)
downloadDropOut-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.rs1
-rw-r--r--src-tauri/src/core/rules.rs7
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) => {