Repository navigation
0.6.0
·
146 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
Closes out ISteamUserStats with GetSchemaForGame, GetGlobalAchievementPercentagesForApp and GetNumberOfCurrentPlayers, and adds a connector-wide default language. Contains a breaking change.
Added
- GetSchemaForGameRequest (ISteamUserStats) with the GameSchema, SchemaAchievement and SchemaStat DTOs, listing every stat and achievement a game publishes, localised through the Language enum. An app publishing no schema comes back as an empty GameSchema rather than a failure (#48).
- GetGlobalAchievementPercentagesForAppRequest (ISteamUserStats) with the GlobalAchievement DTO, listing how much of the playerbase has unlocked each achievement in a game. Steam spells the parameter gameid rather than appid and the SDK follows, so this one method takes $gameId (#50).
- GetNumberOfCurrentPlayersRequest (ISteamUserStats) returning a game's concurrent player count as a plain int. Steam serves the endpoint anonymously, so requests implementing the new SendsNoApiKey contract go out with the configured key stripped from the query (#49).
- Language enum backing Steam's
lquery parameter, and a language on SteamConfig that applies it to every request whose endpoint localises its payload. Steam's codes are Valve's own rather than ISO, so the enum transcribes their table instead of mapping to one (#46). - AppNotFoundException for an app ID Steam does not know, thrown only where the response separates it from an app that merely exposes no stats (#47).
Changed
- BC break. $language is a ?Language instead of a ?string on GetPlayerAchievementsRequest, GetUserStatsForGameRequest and both StatsResource methods. Callers passing a raw code swap 'english' for Language::English (#46).
Details
- Language enum + default in SteamConfig by @fkrzski in #52
- Add GetNumberOfCurrentPlayers and AppNotFoundException by @fkrzski in #53
- Add GetGlobalAchievementPercentagesForApp by @fkrzski in #54
- Add GetSchemaForGame by @fkrzski in #55
- Docs pass for 0.6.0 by @fkrzski in #56
Full Changelog: 0.5.0...0.6.0