diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 0956220..f2b60f8 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -32,6 +32,7 @@ services: #EN_ANDROID_ASSET_HASH: "" #EN_IOS_ASSET_HASH: "" #WINDOWS_ASSET_HASH: "" # Windows asset hash (JP only; GL Windows is unused) + #FORCE_UPDATES: false # Force outdated clients to update # Everything below is for the "Help" page #ANDROID_GLOBAL: "link.to/patched/android/global.apk" diff --git a/docker/start.sh b/docker/start.sh index 4036108..ea9e98b 100755 --- a/docker/start.sh +++ b/docker/start.sh @@ -18,6 +18,7 @@ args=( [ "${NERF_CUSTOM_CARDS:-}" = "true" ] && args+=(--nerf-custom-cards) [ "${ENABLE_CUSTOM_3DMV:-}" = "true" ] && args+=(--enable-custom-3dmv) [ "${ENABLE_ARCADE:-}" = "true" ] && args+=(--enable-arcade) +[ "${FORCE_UPDATES:-}" = "true" ] && args+=(--force-updates) add_opt() { local value="$1" flag="$2" diff --git a/src/options.rs b/src/options.rs index 456c68f..fb4dc2e 100644 --- a/src/options.rs +++ b/src/options.rs @@ -89,6 +89,9 @@ pub struct Args { #[arg(long, default_value = "", help = "Asset version for overridden asset hashes.")] pub asset_version: String, + #[arg(long, default_value_t = false, help = "Force an application update for asset versions not marked as latest")] + pub force_updates: bool, + #[arg(long, default_value = "", help = "Asset hash for windows client.")] pub windows_asset_hash: String, diff --git a/src/router/global.rs b/src/router/global.rs index abc3cd0..33c907b 100644 --- a/src/router/global.rs +++ b/src/router/global.rs @@ -100,13 +100,16 @@ impl AssetVersion { } fn valid_hashes(asset_version: &str, platform: &str) -> Vec { + let args = crate::get_args(); let mut out = Vec::new(); for entry in ASSET_VERSIONS { if entry.platform != platform { continue; } if entry.version == asset_version && !entry.hash.is_empty() { - out.push(entry.stock_hash()); + if entry.latest || !args.force_updates { + out.push(entry.stock_hash()); + } } if entry.latest { if let Some((ov, oh)) = entry.override_pair() {