Releases: SteamRE/SteamKit
Releases · SteamRE/SteamKit
SteamKit 2.0.0-Beta.1
- 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.
- If the
- Added
ArgumentNullException
to the public API surface when passing null into methods that would have previously triggered aNullReferenceException
. - 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]
ifSteamFriends.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 aSteamConfiguration
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), useSteamConfiguration
instead. - If you were using various properties to modify timeouts etc., use
SteamConfiguration
instead. - If you do not provide a
SteamConfiguration
when constructing aSteamClient
, the server list will be private to thatSteamClient
instance. - If you create multiple clients from a single configuration, the server list will be shared among those clients.
SteamClient.ConnectedUniverse
is nowSteamClient.Universe
. This is now set from the configuration, and is no longerEUniverse.Invalid
when not connected.SteamClient.ConnectionTimeout
is now read-only. Setting this property is now performed onSteamConfiguration
.
- If you were using the
- Removed
SteamClient.ConnectedCallback.EResult
, as it could only ever beEResult.OK
. - Servers are now represented by
ServerRecord
objects, not IP addresses.CMListCallback
now returns a collection ofServerRecord
objects, not IP addresses. (#434)CMListCallback
now also includes WebSocket servers. (#434)SteamClient.Connect
now optionally accepts aServerRecord
instead of optionally accepting anIPEndPoint
. You can create aServerRecord
for a particular protocol type or set of protocol types.IServerListProvider
now deals withServerRecord
s instead ofIPEndPoint
s.
- Disabling server list fetching from the directory is now done via
SteamConfiguration
instead ofSmartCMServerList
. SteamDirectory
helper methods now accept aSteamConfiguration
rather than just a cellid.SteamFriends.GetPersonaName()
,SteamFriends.GetFriendPersonaName
andSteamFriends.GetClanName
can all now return null if the value is unknown. (#443)WebAPI
used to throw aWebException
on non-success status code, or other failure. It now throwsHttpRequestException
. (#446)CDNClient
andWebAPI
now exposeTask
-based asynchronous methods. This replaces the previous synchronous methods.
SteamKit 2.0.0-Alpha10
- Fixed crash when reconnecting an existing
SteamClient
instance. (#464)
SteamKit 2.0.0-Alpha9
- Fixed user's name being changed to
[unassigned]
ifSteamFriends.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
SteamKit 2.0.0-Alpha8
- 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 ofServerRecord
objects, not IP addresses. (#434)CMListCallback
now also includes WebSocket servers. (#434)- Added
WebAPIKey
toSteamConfiguration
. This will be used by WebAPI objects created from the given configuration, and bySteamDiscovery
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 aNullReferenceException
. - 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)
SteamKit 2.0.0-Alpha7
- Fixed exception when using WebSocket protocol. (#426)
SteamKit 2.0.0-Alpha6
- The default
EClientPersonaStateFlags
are now defined bySteamConfiguration
. (#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)
SteamKit 2.0.0-Alpha5
- Added support for websocket client connections
- New overloads of
WebAPI.GetInterface
andWebAPI.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 beEResult.OK
- The
SteamClient
constructor now accepts aSteamConfiguration
object, which is a container for various configuration settings. If you were using theSteamClient
constructor to specify a specific protocol type (TCP or UDP), useSteamConfiguration
instead. - If you do not provide a
SteamConfiguration
when constructing aSteamClient
, the server list will be private to thatSteamClient
instance. If you create multiple clients from a single configuration, the server list will be shared. SteamClient.ConnectedUniverse
is nowSteamClient.Universe
. This is now set from the configuration, and is no longerEUniverse.Invalid
when not connected.SteamClient.ConnectionTimeout
is now read-only. Setting this property is now performed onSteamConfiguration
.SteamClient.Connect
now optionally accepts aServerRecord
instead of optionally accepting anIPEndPoint
. You can create aServerRecord
for a particular protocol type or set of protocol types.IServerListProvider
now deals withServerRecord
s instead ofIPEndPoint
s.- Disabling server list fetching from the directory is now done via
SteamConfiguration
instead ofSmartCMServerList
. SteamDirectory
helper methods now accept aSteamConfiguration
rather than just acellid
.
SteamKit 2.0.0-Alpha4
Fix for #383 - Prevent double calls of ConnectCompleted when timeout …
SteamKit 2.0.0-Alpha3
- 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
SteamKit 2.0.0-Alpha2
- Fixed a crash in
WebAPI
.