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); } }
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); } }