Skip to content

SteamKit 2.4.0

Compare
Choose a tag to compare
@yaakov-h yaakov-h released this 04 Dec 12:38
· 597 commits to master since this release
  • 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, and only_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 to PICSGetProductInfo as the compiler will
  • not warn you about this change. (#911)
  • Changed SteamApps.GetPICSProductInfo signature to now use PICSRequest 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 an ArgumentNullException if the handler is null, rather than crashing on a NullReferenceException. (#1049)
  • WebAPI will now throw an ArgumentException if the method parameter is null, rather than crashing on a NullReferenceException. (#1049)
  • CDN timeouts options are now properties instead of fields. (#1049)
  • CDNClient has been heavily refactored and is now SteamKit2.CDN.Client. (#1022)
  • ClientMsgProtobuf can now only be constructed from a PacketClientMsgProtobuf. (#1036)
  • Removed IClientMsg.Deserialize(...) and implementations. (#1036)
  • Removed ServiceMethodResponse.ResponseRaw. (#1036)
  • CDN.Server.AllowedAppIds is now not-nullable. Check for empty instead. (#1021)