SteamKit2 is a .NET library designed to interoperate with Valve's Steam network. It aims to provide a simple, yet extensible, interface to perform various actions on the network.
AsyncJob
. (#481)ServerRecord
. (#476)Microsoft.Win32.Registry
. (#470)BREAKING CHANGES
SteamID.ToString()
now prints a Steam3 string by default. For the older Steam2 STEAM_X:Y:Z
format, use SteamID.Render()
. (#471)SteamID.Render(bool)
has been changed to render Steam3 by default instead of Steam2. (#471)CallbackMgr
thread. (#481)SteamConfiguration
, which replaces the previous assortment of individual configuration properties and parameters.
SteamConfiguration
permits both TCP and UDP, both can now be used (depending on server ranking). (#417)ArgumentNullException
to the public API surface when passing null into methods that would have previously triggered a NullReferenceException
.SteamUserStats.GetLeaderboardEntries
. (#421)[unassigned]
if SteamFriends.SetPersonaState()
is called too early. (#442)SteamUnifiedMessages.UnifiedService<>.SendMessage
. (#469)BREAKING CHANGES
[Obsolete]
.SteamClient
constructor now accepts a SteamConfiguration
object, which is a container for various configuration settings.
SteamClient
constructor to specify a specific protocol type (TCP or UDP), use SteamConfiguration
instead.SteamConfiguration
instead.SteamConfiguration
when constructing a SteamClient
, the server list will be private to that SteamClient
instance.SteamClient.ConnectedUniverse
is now SteamClient.Universe
. This is now set from the configuration, and is no longer EUniverse.Invalid
when not connected.SteamClient.ConnectionTimeout
is now read-only. Setting this property is now performed on SteamConfiguration
.SteamClient.ConnectedCallback.EResult
, as it could only ever be EResult.OK
.ServerRecord
objects, not IP addresses.
CMListCallback
now returns a collection of ServerRecord
objects, not IP addresses. (#434)CMListCallback
now also includes WebSocket servers. (#434)SteamClient.Connect
now optionally accepts a ServerRecord
instead of optionally accepting an IPEndPoint
. You can create a ServerRecord
for a particular protocol type or set of protocol types.IServerListProvider
now deals with ServerRecord
s instead of IPEndPoint
s.SteamConfiguration
instead of SmartCMServerList
.SteamDirectory
helper methods now accept a SteamConfiguration
rather than just a cellid.SteamFriends.GetPersonaName()
, SteamFriends.GetFriendPersonaName
and SteamFriends.GetClanName
can all now return null if the value is unknown. (#443)WebAPI
used to throw a WebException
on non-success status code, or other failure. It now throws HttpRequestException
. (#446)CDNClient
and WebAPI
now expose Task
-based asynchronous methods. This replaces the previous synchronous methods.SteamClient
instance. (#464)[unassigned]
if SteamFriends.SetPersonaState()
is called too early. (#442)WebAPI
attempting to parse whatever data the server returned on non-success status code. (#446)BREAKING CHANGES
SteamFriends.GetPersonaName()
, SteamFriends.GetFriendPersonaName
and SteamFriends.GetClanName
can all now return null if the value is unknown. (#443)WebAPI
used to throw a WebException
on non-success status code, or other failure. It now throws HttpRequestException
. (#446)CMListCallback
now returns a collection of ServerRecord
objects, not IP addresses. (#434)CMListCallback
now also includes WebSocket servers. (#434)WebAPIKey
to SteamConfiguration
. This will be used by WebAPI objects created from the given configuration, and by SteamDiscovery
when loading the initial server list.SteamConfiguration
.ArgumentNullException
to the public API surface when passing null into methods that would have previously triggered a NullReferenceException
.EClientPersonaStateFlags
are now defined by SteamConfiguration
. (#324)SteamConfiguration
permits both TCP and UDP, both can now be used (depending server ranking). #417SteamUserStats.GetLeaderboardEntries
(#421)WebAPI.GetInterface
and WebAPI.GetAsyncInterface
allow you to specify a different base URL for the Steam Web APIs (i.e. https://api.steampowered.com/
)BREAKING CHANGES
SteamClient.ConnectedCallback.EResult
, as it could only ever be EResult.OK
SteamClient
constructor now accepts a SteamConfiguration
object, which is a container for various configuration settings. If you were using the SteamClient
constructor to specify a specific protocol type (TCP or UDP), use SteamConfiguration
instead.SteamConfiguration
when constructing a SteamClient
, the server list will be private to that SteamClient
instance. If you create multiple clients from a single configuration, the server list will be shared.SteamClient.ConnectedUniverse
is now SteamClient.Universe
. This is now set from the configuration, and is no longer EUniverse.Invalid
when not connected.
SteamClient.ConnectionTimeout
is now read-only. Setting this property is now performed on SteamConfiguration
.SteamClient.Connect
now optionally accepts a ServerRecord
instead of optionally accepting an IPEndPoint
. You can create a ServerRecord
for a particular protocol type or set of protocol types.IServerListProvider
now deals with ServerRecord
s instead of IPEndPoint
s.SteamConfiguration
instead of SmartCMServerList
.SteamDirectory
helper methods now accept a SteamConfiguration
rather than just a cellid
.