//============================================================================= // KFSteamWebUpToDateCheck //============================================================================= // Makes a call to the Steam Web API to check the current version of the game server or client //============================================================================= // Copyright (C) 2015 Tripwire Interactive LLC // - Joshua "Josh" Rowan // All Rights Reserved. //============================================================================= class KFSteamWebUpToDateCheck extends KFSteamWebAPICall config(Game) native; /** configurable steam app id */ var const int APIAppID; event SendUpToDateCheck() { CallWebProcedure(APICall, "appid="$APIAppID$"&version="$class'KFGameEngine'.static.GetKFGameVersion()); } function ProcessResponse(JsonObject response) { local JsonObject ResponseList; local bool bUpToDate; ResponseList = response.GetObject("response"); if ( ResponseList == none ) { `log(Name @ "got invalid JSON response.", bDebug); return; } if (!ResponseList.HasKey("up_to_date")) { `log(Name @ "got unexpected JSON response.", bDebug); return; } bUpToDate = ResponseList.GetBoolValue("up_to_date"); if (!bUpToDate) { `warn("Server is out of date, need version" @ ResponseList.GetIntValue("required_version")); class'KFGameInfo'.static.StaticSetNeedsRestart(); } `log(Name @ "response="$int(bUpToDate), bDebug); } defaultproperties { APICall="/ISteamApps/UpToDateCheck/v1/" APIAppID=232130 }