コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }