public static string[] TryToGetAchievments(string appId, string steamId) {
var requestUri = string.Format(RequestStatsUri, appId, steamId, InternalUtils.GetSteamApiCode());
try {
var httpRequest = WebRequest.Create(requestUri);
httpRequest.Method = "GET";
using (var response = (HttpWebResponse)httpRequest.GetResponse()) {
if (response.StatusCode != HttpStatusCode.OK) return null;
var result = response.GetResponseStream()?.ReadAsStringAndDispose();
if (result == null) return null;
var parsed = JObject.Parse(result);
return ((JArray)((JObject)parsed["playerstats"])["achievements"]).Select(x => (JObject)x)
.Where(x => (int)x["achieved"] > 0)
.Select(x => (string)x["name"])
.ToArray();
}
} catch (WebException e) {
Logging.Warning($"TryToGetAchievments(): {requestUri}, {e.Message}");
return null;
} catch (Exception e) {
Logging.Warning($"TryToGetAchievments(): {requestUri}\n{e}");
return null;
}
}