From 677adc5ad0b00bebf30740eaa2ccfbedbc4adcd4 Mon Sep 17 00:00:00 2001 From: Adrian Bonpin Date: Sun, 28 Jun 2026 18:54:46 +0800 Subject: [PATCH] fix(plugin): revert to RegisterForGameStarted/Stopped for runtime compat --- plugins/decky-vault/src/index.tsx | 13 ++++++------- plugins/decky-vault/src/types.d.ts | 6 ++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/plugins/decky-vault/src/index.tsx b/plugins/decky-vault/src/index.tsx index 472f877..c63bbe3 100644 --- a/plugins/decky-vault/src/index.tsx +++ b/plugins/decky-vault/src/index.tsx @@ -42,15 +42,14 @@ function Content() { // ── Register SteamClient game events ────────────────────────── useEffect(() => { try { - const startedReg = SteamClient.Apps.RegisterForGameActionStart( - (_gameActionId: number, appId: string, _action: string, _source: number) => { - const appIdNum = parseInt(appId, 10) - onGameStart(appIdNum, `App ${appId}`) - }, - ) + // Use RegisterForGameStarted/Stopped — these are the most widely used + // APIs in Decky plugins despite TypeScript type warnings. + const startedReg = SteamClient.Apps.RegisterForGameStarted((appId: number) => { + onGameStart(appId, `App ${appId}`) + }) gameStartedUnregRef.current = startedReg - const stoppedReg = SteamClient.Apps.RegisterForGameActionEnd((_gameActionId: number) => { + const stoppedReg = SteamClient.Apps.RegisterForGameStopped((_appId: number) => { onGameStop() }) gameStoppedUnregRef.current = stoppedReg diff --git a/plugins/decky-vault/src/types.d.ts b/plugins/decky-vault/src/types.d.ts index be14309..31cdccb 100644 --- a/plugins/decky-vault/src/types.d.ts +++ b/plugins/decky-vault/src/types.d.ts @@ -5,6 +5,12 @@ declare global { const SteamClient: { Apps: { + RegisterForGameStarted: ( + callback: (appId: number) => void, + ) => { unregister: () => void } + RegisterForGameStopped: ( + callback: (appId: number) => void, + ) => { unregister: () => void } RegisterForGameActionStart: ( callback: (gameActionId: number, appId: string, action: string, source: number) => void, ) => { unregister: () => void }