コード例 #1
0
        public static async Task <ServerBrowseResult> Browse(int offset, HostedGameFilters filters)
        {
            var queryString = HttpUtility.ParseQueryString("");

            if (MpLocalPlayer.Platform.HasValue)
            {
                queryString.Add("platform", MpLocalPlayer.PlatformId);
            }

            if (offset > 0)
            {
                queryString.Add("offset", offset.ToString());
            }

            if (!MpSession.GetLocalPlayerHasMultiplayerExtensions())
            {
                queryString.Add("vanilla", "1");
            }

            if (!String.IsNullOrEmpty(filters.TextSearch))
            {
                queryString.Add("query", filters.TextSearch);
            }

            if (filters.HideFullGames)
            {
                queryString.Add("filterFull", "1");
            }

            if (filters.HideInProgressGames)
            {
                queryString.Add("filterInProgress", "1");
            }

            if (filters.HideModdedGames)
            {
                queryString.Add("filterModded", "1");
            }

            var response = await PerformWebRequest("GET", $"/browse?{queryString}");

            if (response == null)
            {
                Plugin.Log?.Warn($"Browse failed, did not get a valid response");
                return(null);
            }

            try
            {
                var contentStr = await response.Content.ReadAsStringAsync();

                return(ServerBrowseResult.FromJson(contentStr));
            }
            catch (Exception ex)
            {
                Plugin.Log?.Warn($"Error parsing browser response: {ex}");
                return(null);
            }
        }
コード例 #2
0
        public static async Task <ServerBrowseResult> Browse(int offset, string searchQuery, bool filterFull = false, bool filterInProgress = false, bool filterModded = false)
        {
            var queryString = HttpUtility.ParseQueryString("");

            if (Plugin.PlatformId != Plugin.PLATFORM_UNKNOWN)
            {
                queryString.Add("platform", Plugin.PlatformId);
            }

            if (offset > 0)
            {
                queryString.Add("offset", offset.ToString());
            }

            if (!MpSession.GetLocalPlayerHasMultiplayerExtensions())
            {
                queryString.Add("vanilla", "1");
            }

            if (!String.IsNullOrEmpty(searchQuery))
            {
                queryString.Add("query", searchQuery);
            }

            if (filterFull)
            {
                queryString.Add("filterFull", "1");
            }

            if (filterInProgress)
            {
                queryString.Add("filterInProgress", "1");
            }

            if (filterModded)
            {
                queryString.Add("filterModded", "1");
            }

            var response = await PerformWebRequest("GET", $"/browse?{queryString}");

            if (response == null)
            {
                Plugin.Log?.Warn($"Browse failed, did not get a valid response");
                return(null);
            }

            try
            {
                var contentStr = await response.Content.ReadAsStringAsync();

                return(ServerBrowseResult.FromJson(contentStr));
            }
            catch (Exception ex)
            {
                Plugin.Log?.Warn($"Error parsing browser response: {ex}");
                return(null);
            }
        }