Skip to content

1.6.0

Latest
Compare
Choose a tag to compare
@LossyDragon LossyDragon released this 05 Feb 04:14
· 11 commits to master since this release
c44c708

This release is quite the change since last version.

Some notable changes that are considered breaking:

  • SteamAuthentication methods use CompletableFuture. Java users can use .get() if not using async. Kotlin users can .await() in a suspending function.
  • AbstractMsgBase write methods are type specific. Example: writeByte and readByte instead of just write and read.

Add:

  • CSGO/CS2 protobufs as a library (no Maven package yet).
  • Handle ClientServerUnavailable response.
  • KV alternate end
  • More logging for connection and disconnection events.
  • macOS15 for Utils.getEOStype().
  • MemoryStream with ByteString constructor.
  • Functionality for server list to refresh itself.
  • Content Downloader. Thanks @oxters168
  • CDN support. Thanks @oxters168
  • CMClient.isDisconnected(), which also checks the connection object too. Thanks @Srdjan-V
  • Allow custom Unified Services.
  • Addtional SteamCloud related functions. Thanks @oxters168
  • Addtional Util related functions. Thanks @oxters168
  • Addtional SteamApps related functions. Thanks @oxters168
  • SampleDownloadUserFiles sample app. Thanks @oxters168
  • SampleDownloadApp sample app. Thanks @oxters168
  • Lan cache support.
  • BouncyCastle support for Android.
  • Kotlin inline function for SteamClient.getHandler().
  • Implement setFromUInt64String in SteamID. Thanks @Srdjan-V

Fixes:

  • ChatMode.NEW_STEAM_CHAT value.
  • Reuse the same string builder in readToken.
  • Disconnections should know if it was user initiated or not.
  • Create a connection based on the next server candidate and not on configuration.
  • Encoding issues with PICSProductInfo (again). Thanks @rakosi2
  • LegacyGameKeyCallback uses US_ACII encoding.
  • Fix expression comparing itself in UDP receiving.
  • Various stream closures, fixing reported and potential memory leaks. With help from @oxters168
  • Refactor content service initialization to use lazy delegation. Thanks @asLody
  • Implement own BinaryReader.toString() to fix NoSuchMethodError.
  • Implement own InputStream.readNBytes() to fix NoSuchMethodError.
  • (Breaking) SteamAuthentication methods use Futures.
  • Handle null handler values.

Changes:

  • Bring back logging in SmartCMServerList.tryMark().
  • Allow WebSocket as a default protocol (TCP and WEB_SOCKET).
  • Replace GetCMList with GetCMListForConnect for CM servers.
  • Make AbstractMsgBase write methods type specific. Thanks @Srdjan-V
  • Make UTF8 the standard charset for messages.
  • KVTextReader now extends InputStream instead of PushbackInputStream.
  • KVTextReader should throw exceptions
  • NetHelpers improvements, including ipv6 support.
  • Cleanup callback manager internals (Subscription is just a pointless wrapper around CallbackBase which is Closeable by itself).
  • Rework Unified Messaging to use less reflection.
  • Use Ktor instead of Okhttp for web socket connections. Thanks @rakosi2 for testing this fix so many times!

Removed:

  • serverMap private variable in CMClient
  • ClientCMList response.
  • EResultDeserializer.java
  • ICallbackMsg.kt
  • SteamApps.getCDNAuthToken() and ClientGetCDNAuthTokenResponse. Thanks @oxters168
  • Useless "heartbeat" println in AsyncJob.

Misc:

  • Update and add more Tests.
  • Update README.
  • Update GitHub workflows.
  • Update protobuf and steamd files.
  • Update library dependencies.
  • Update sample apps.
  • Update lint rules.
  • Update kdoc
  • Label TODO's that are also in SteamKit