SteamKit 2.4.0
- Updated protobuf-net dependency to v3.0.
- Added a MemoryServerListProvider implementation. (#918)
- Added
CallProtobufAsync<T>
method to WebAPI to deserialize response as Protobuf instead of KeyValues. (#1021) - Added
SteamChinaOnly
flag to CDN server objects. (#1021) - Added new APIs to allow consumers to provide their own machine info. (#1028)
- Added
SteamUser.VanityUrlChangedCallback
. (#1035) - Added
SteamApps.PurchaseResponseCallback
. (#1033) - Added
SteamApps.RedeemGuestPassResponseCallback
. (#1033) - Added new
SteamContent
handler. (#1022, #1060) - Added the ability to set
ClientMsgProtoBuf<T>.Body
. (#1036) - SteamKit2 now ships a net6.0 assembly as well as a netstandard2.0 assembly. (#1049)
- Enabled strong name signing on the SteamKit2 assembly. (#897)
- Changed thread names to not get truncated on Linux. (#1015)
- Changed message handler exception handling to log the full
Exception
object rather than just the message. (#1052) - Changed the implementation of
SteamUnifiedMessages
to use the newer message protocol under the hood. (#1036) - Removed some DebugLog spam from WebSocket connections. (#1040)
- Updated C# nullability annotations. (#971)
- Updated Steam enums and protobufs. (#910, #911, #939, #957, #965, #973, #981, #1008, #1020, #1025, #1059, #1062)
Bug Fixes
- Fixed a race in
CMClient.Send
. (#913) - Fixed a race in
AsyncJob
registration. (#926) - Fixed an issue opening files in
IsolatedStorageServerListProvider
. - Fixed throwing an exception when calling WebAPI twice with the same arguments. (#992)
- Fixed WebAPI mutating the supplied arguments dictionary. (#995)
- Fixed cryptographic errors in .NET 6 previews. (#1006)
- Fixed
IDebugNetworkListener
not being given encryption handshake messages. (#1038) - Fixed a possible unhandled exception when opening a TCP connection. (#1047)
- Fixed the
UnobservedTaskException
event being triggered on .NET 6 if a TCP connection times out. (#1050) - Fixed WebSocket connections constructing an incorrect IPv6 URI. (#1055)
- Fixed
DisconnectedCallback.UserInitiated
being true when a connection was terminated due to an internal error. (#1053) - Fixed
SmartCMServerList
getting fixated on the first CM server when all servers are marked as bad.
BREAKING CHANGES
SteamWorkshop.EnumerateUserPublishedFiles
and its associated callback has been removed. (#973)SteamWorkshop.EnumerateUserSubscribedFiles
and its associated callback has been removed. (#973)SteamApps.PICSRequest
has been changed from a class to a struct, andonly_public
has been removed. (#911)- A non-final optional parameter has been removed from
SteamApps.PICSGetProductInfo
. For any caller that supplied - three unnamed arguments, this is a source-breaking change as the value for
onlyPublic
will now be passed to the - method parameter
metaDataOnly
. Please audit your code for any calls toPICSGetProductInfo
as the compiler will - not warn you about this change. (#911)
- Changed
SteamApps.GetPICSProductInfo
signature to now usePICSRequest
objects. (#1009) - Removed some old non-Protobuf messages. (#1037)
- Updated nullability to match latest BCL annotations and to fix .NET 6 SDK analysis warnings. (#1049)
SteamClient.AddHandler
will now throw anArgumentNullException
if the handler is null, rather than crashing on aNullReferenceException
. (#1049)- WebAPI will now throw an
ArgumentException
if themethod
parameter isnull
, rather than crashing on aNullReferenceException
. (#1049) - CDN timeouts options are now properties instead of fields. (#1049)
CDNClient
has been heavily refactored and is nowSteamKit2.CDN.Client
. (#1022)ClientMsgProtobuf
can now only be constructed from aPacketClientMsgProtobuf
. (#1036)- Removed
IClientMsg.Deserialize(...)
and implementations. (#1036) - Removed
ServiceMethodResponse.ResponseRaw
. (#1036) CDN.Server.AllowedAppIds
is now not-nullable. Check for empty instead. (#1021)