SteamKit Versions Save

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.

2.0.0-Beta.2

6 years ago
  • Fixed a potential deadlock when awaiting an AsyncJob. (#481)
  • Fixed TCP connections not being correctly flagged in the server list. (#488)
  • Fixed TCP disconnections not being correctly flagged as user-initiated. (#488)
  • Added hashing and equality support to ServerRecord. (#476)
  • Added HTTPS support to CDNClient.
  • Updated package dependency Microsoft.Win32.Registry. (#470)
  • Updated Steam enums (#463)

BREAKING CHANGES

  • SteamID.ToString() now prints a Steam3 string by default. For the older Steam2 STEAM_X:Y:Z format, use SteamID.Render(). (#471)
  • The default argument of SteamID.Render(bool) has been changed to render Steam3 by default instead of Steam2. (#471)
  • Async job continuations are no longer invoked on the CallbackMgr thread. (#481)

2.0.0-Beta.1

6 years ago
  • SteamKit 2.0 now targets .NET Standard 2.0. This means it now requires .NET Framework 4.6.1 or higher, .NET Core 2.0 or higher, or any other .NET Standard 2.0-compatible runtime.
  • Added support for WebSocket client connections.
    • Server List treats WebSocket, TCP and UDP independently, even for the same server.
    • If a server is not reachable on TCP, SteamKit will still attempt UDP and vice-versa.
  • Added SteamConfiguration, which replaces the previous assortment of individual configuration properties and parameters.
    • If the SteamConfiguration permits both TCP and UDP, both can now be used (depending on server ranking). (#417)
    • See the Breaking Changes section below for further details.
  • Added ArgumentNullException to the public API surface when passing null into methods that would have previously triggered a NullReferenceException.
  • Updated Protobuf message classes to expose a property indicating if any wire value was specified or not, and a method to clear the value.
  • Updated game-related GC messages and protobufs. (#459, #460)
  • Updated Steam enums and protobufs. (#456, #457, #458)
  • Fixed no callback being fired when calling SteamUserStats.GetLeaderboardEntries. (#421)
  • Fixed a crash if we encountered a message that's too small to actually contain a message.
  • Fixed user's name being changed to [unassigned] if SteamFriends.SetPersonaState() is called too early. (#442)
  • Fixed order of handlers being non-deterministic. (#442)
  • Fixed exception when using SteamUnifiedMessages.UnifiedService<>.SendMessage. (#469)

BREAKING CHANGES

  • Removed all methods and properties that were marked as [Obsolete].
  • The 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.
    • If you were using various properties to modify timeouts etc., use SteamConfiguration instead.
    • If you do not provide a 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 among those clients.
    • 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.
  • Removed SteamClient.ConnectedCallback.EResult, as it could only ever be EResult.OK.
  • Servers are now represented by 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 ServerRecords instead of IPEndPoints.
  • Disabling server list fetching from the directory is now done via 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.

2.0.0-Alpha10

6 years ago
  • Fixed crash when reconnecting an existing SteamClient instance. (#464)

2.0.0-Alpha9

6 years ago
  • Fixed user's name being changed to [unassigned] if SteamFriends.SetPersonaState() is called too early. (#442)
  • Fixed order of handlers being non-deterministic. (#442)
  • Fixed WebAPI attempting to parse whatever data the server returned on non-success status code. (#446)
  • Fixed no callback being fired when WebSockets failed on Windows 7. (#455)
  • Updated game-related GC messages and protobufs. (#459, #460)
  • Updated Steam enums and protobufs. (#456, #457, #458)

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)

2.0.0-Alpha8

6 years ago
  • SteamKit 2.0 now targets .NET Standard 2.0. This means it now requires .NET Framework 4.6.1 or higher, .NET Core 2.0 or higher, or any other .NET Standard 2.0-compatible runtime.
  • CMListCallback now returns a collection of ServerRecord objects, not IP addresses. (#434)
  • CMListCallback now also includes WebSocket servers. (#434)
  • Added WebAPIKey to SteamConfiguration. This will be used by WebAPI objects created from the given configuration, and by SteamDiscovery when loading the initial server list.
  • Added extension methods to create WebAPI interfaces with settings from a SteamConfiguration.
  • Added ArgumentNullException to the public API surface when passing null into methods that would have previously triggered a NullReferenceException.
  • Fixed a crash if we encountered a message that's too small to actually contain a message.
  • Fixed several crashes in the WebSocket code. (#426, #436)

2.0.0-Alpha7

6 years ago
  • Fixed exception when using WebSocket protocol. (#426)

2.0.0-Alpha6

6 years ago
  • The default EClientPersonaStateFlags are now defined by SteamConfiguration. (#324)
  • Server List now treats TCP and UDP independently, even for the same server. If a server is not reachable on TCP, SteamKit will still attempt UDP and vice-versa. Additionally, if the SteamConfiguration permits both TCP and UDP, both can now be used (depending server ranking). #417
  • Fixed exceptions when using WebSocket protocol (#420, #422)
  • Fixed no callback being fired when calling SteamUserStats.GetLeaderboardEntries (#421)

2.0.0-Alpha5

6 years ago
  • Added support for websocket client connections
  • New overloads of WebAPI.GetInterface and WebAPI.GetAsyncInterface allow you to specify a different base URL for the Steam Web APIs (i.e. https://api.steampowered.com/)
  • Updated game-related GC messages and protobufs.
  • Updated Steam enums and protobufs.

BREAKING CHANGES

  • Removed SteamClient.ConnectedCallback.EResult, as it could only ever be EResult.OK
  • The 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.
  • If you do not provide a 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 ServerRecords instead of IPEndPoints.
  • Disabling server list fetching from the directory is now done via SteamConfiguration instead of SmartCMServerList.
  • SteamDirectory helper methods now accept a SteamConfiguration rather than just a cellid.

2.0.0-Alpha4

7 years ago

2.0.0-Alpha3

7 years ago
  • Fixed xmldoc being generated with an incorrect filename
  • Fixed licence files from being copied to consumer projects automatically
  • Fixed readme.txt not being called that
  • Fixed .NET Framework version of SteamKit2 relying upon .NET Core nuget packages at runtime