static void OnMethodResponse(SteamUnifiedMessages.ServiceMethodResponse callback) { if (callback.JobID != badgeRequest) { // always double check the jobid of the response to ensure you're matching to your original request return; } // and check for success if (callback.Result != EResult.OK) { Console.WriteLine($"Unified service request failed with {callback.Result}"); return; } // retrieve the deserialized response for the request we made // notice the naming pattern // for requests: CMyService_Method_Request // for responses: CMyService_Method_Response CPlayer_GetGameBadgeLevels_Response resp = callback.GetDeserializedResponse <CPlayer_GetGameBadgeLevels_Response>(); Console.WriteLine($"Our player level is {resp.player_level}"); foreach (var badge in resp.badges) { Console.WriteLine($"Badge series {badge.series} is level {badge.level}"); } badgeRequest = JobID.Invalid; // now that we've completed our task, lets log off steamUser.LogOff(); }
internal async Task <uint?> GetLevel() { if (!Client.IsConnected) { return(null); } CPlayer_GetGameBadgeLevels_Request request = new CPlayer_GetGameBadgeLevels_Request(); SteamUnifiedMessages.ServiceMethodResponse response; try { response = await UnifiedPlayerService.SendMessage(x => x.GetGameBadgeLevels(request)); } catch (Exception e) { ArchiLogger.LogGenericWarningException(e); return(null); } if (response == null) { ArchiLogger.LogNullError(nameof(response)); return(null); } if (response.Result != EResult.OK) { return(null); } CPlayer_GetGameBadgeLevels_Response body = response.GetDeserializedResponse <CPlayer_GetGameBadgeLevels_Response>(); return(body.player_level); }
internal async Task <uint?> GetLevel() { if (Client == null) { throw new InvalidOperationException(nameof(Client)); } if (!Client.IsConnected) { return(null); } CPlayer_GetGameBadgeLevels_Request request = new(); SteamUnifiedMessages.ServiceMethodResponse response; try { response = await UnifiedPlayerService.SendMessage(x => x.GetGameBadgeLevels(request)).ToLongRunningTask().ConfigureAwait(false); } catch (Exception e) { ArchiLogger.LogGenericWarningException(e); return(null); } if (response.Result != EResult.OK) { return(null); } CPlayer_GetGameBadgeLevels_Response body = response.GetDeserializedResponse <CPlayer_GetGameBadgeLevels_Response>(); return(body.player_level); }