Breaking:
ContentDownloader has been removed and remade from scratch now called DepotDownloader as a separate maven package (:javasteam-depotdownloader).
DepotDownloader mostly follows SteamRE/DepotDownloader internally.
See sample 023 on how to use the new way of downloading SteamApps. There is no migration path between ContentDownloader and DepotDownloader.
Thanks to all the contributors and users from GameNative for the countless bug hunting and testing!
Additions:
- Revamped depot downloader implementation with Android optimization. Thanks @joshuatam and @utkarshdalal
- Add SteamOS and LegionGoS enums to
EGamingDeviceType - Add protobufs for Deadlock, Dota, and Counter-Strike 2.
- Add steammessages_publishedfile protobuf. Thanks @asLody
- Add Kotlin reified methods for Logger.getLogger(), SteamClient.addHandler(), and SteamClient.removeHandler().
- Add Steam achievements support with expanded metadata parsing. See sample 032. Thanks @phobos665
- Add
EncryptedAppTicketCallbackfor SteamApps. Thanks @utkarshdalal - Add
SteamClientCommunicationfor remote client control.
Fixes:
DepotManifest: Decrypt LinkTarget.MessageObject: default KV name from "MessagObject" to "MessageObject".ChatMemberInfoincorrect permissions value lookup.GameID: Fix hashCode() value.MemoryStream: read() to return -1 at end of stream. Thanks @asLodyCMClient: Optimize handleMulti() and getPacketMsg().Adler32: Optimize checksum by unrolling.- Expose all
CMsgClientPersonaState.Friendvalues inPersonaStateCallback. - Various performance optimizations in
MemoryStream,BinaryReader,KeyValue,Utils,VZipUtil,VZstdUtil,ZipUtil, andDepotManifest.
Misc:
- Partial implementation of peer to peer methods in
SteamContent. - Port remaining classes in
.types.,.log., and.base.to Kotlin. - Update: Protobufs, steamd, and enums.
- Update: dependencies and gradle.
- Add
@JavaSteamAnnotationannotation for classes, values, and methods added outside of SteamKit's implementation.