feat: warn if background downloads are disabled

This commit is contained in:
aclist 2026-07-10 17:30:23 +09:00
parent ec8f6a3d36
commit d6bf63886e
3 changed files with 24 additions and 4 deletions

View File

@ -305,8 +305,6 @@ def _get_running_app() -> int | None:
return None
# TODO: write tests
# TODO: consider moving to proc module
def get_running_app() -> int | None:
PROC_NAME = "steam"
SUBPROC_NAME = "reaper"
@ -329,7 +327,6 @@ def get_running_app() -> int | None:
return None
# TODO: write tests
def get_app_allows_downloads(path: Path, appid: int) -> bool:
root_path = get_app_path(path, appid)
acf = root_path.joinpath(f"steamapps/appmanifest_{appid}.acf")

View File

@ -12,8 +12,11 @@ import dzgui.api.servers as Servers
from dzgui.api.steam import (
connect,
get_remote_signatures,
get_app_allows_downloads,
get_app_name,
get_needs_update,
get_remote_signatures,
get_running_app,
load_to_menu,
subscribe,
)
@ -82,6 +85,7 @@ class Prerequisites:
mods: list[list[str]]
game_mode: bool
is_last_server: bool
allows_downloads: tuple[bool, str]
class ConnectionManager:
@ -167,6 +171,15 @@ class ConnectionManager:
dayz_running = is_dayz_running()
running_app = get_running_app()
if running_app is not None:
allows_dl = get_app_allows_downloads(steam_path, running_app)
running_app_name = get_app_name(running_app)
allows_downloads = (allows_dl, running_app_name)
else:
allows_downloads = (True, "")
client_name = self.controller.get_steam_client_name()
client = self.controller.query_config(Preferences.CLIENT)
running = is_steam_running(client)
@ -192,6 +205,7 @@ class ConnectionManager:
mods=remote_mods,
game_mode=game_mode,
is_last_server=is_last,
allows_downloads=allows_downloads,
)
func = StoredFunc(self.controller.open_connection_assistant, prereqs)

View File

@ -272,6 +272,15 @@ class PreConnectionAssistant(Gtk.Box):
"It looks like DayZ is already running in the background. Exit DayZ before connecting."
)
allows_dl, running_app = prereqs.allows_downloads
if allows_dl is False:
msg = (
f"The game '{running_app}' is currently running in Steam, but background downloads are not enabled.\n"
"Either stop the game first, or update your global Steam settings or the game's local settings.\n"
"Otherwise, mods may be queued for download but never update."
)
warnings.append(msg)
self.add_warnings(warnings)
self.add_errors(errors)