All notable changes to this project are documented below.
The format is based on keep a changelog and this project uses semantic versioning.
- Add option to specify own dispatcher for socket connectivity.
- WebSocketClient now closes the thread executor service if internal executor was used once the socket is closed.
- Improve client and socket disconnection process.
- Corrected Channel Type enum values to match the protocol.
- Session logout function no longer attempts to renew the token after logout.
- WebSocket client resources are released immediately after disconnection and are made ready again in case of reconnection.
- Include generated Protobuf code in the repository to allow CI tools to build the codebase without Buf tooling.
- Updated SDK to add functionality for APIs in Nakama 3.23 and Satori 2.0.
- Added auto-refresh logic for the session token in Nakama and Satori.
- Moved Protobuf build tooling to use Buf, and simplify the Gradle build scripts.
- Various dependency upgrades.
- Added ability to create a new Session from a Signing Key for server-to-server calls. See
Session.fromSigningKey()
.
- Satori: Adds HTTP support to the Satori client via using the
HttpClient
instead of the grpc-basedDefaultClient
. - Satori: Added ability to specify default flag value in
GetFlag
calls.
- Satori: Fixed handling of network errors when calling
GetDefaultFlag
and returning of default flag value in such cases.
- Fixed packing of external dependencies into fat jars.
- Removed unnecessary generated protobuf code from Satori, resulting in a smaller .jar file.
- Fixed links to documentation in pom.xml.
- Adds the Satori Java SDK. Satori is our liveops server for game studios. Please read more about it on the Heroic Labs website.
- Update shadow to 8.1.1
- Update to Gradle 8.2.0.
- protobuf-lite is now properly exported to Maven and Gradle projects.
- Dispatch error callback when socket connect fails.
- Properly enable protobuf-javalite for Android builds.
- Allowed null values of
collationId
to be passed to theDefaultError
object.
- Added configurable ping frame intervals to Web Socket.
- Ability to demote group users.
- Ability to authenticate link and unlink Facebook Instant Game and Apple users
- Example Android, Gradle and Maven projects.
- Shadow Jar support.
- Ability to customize the web socket message receive thread executor.
- We now use JitPack as our new build repository. Please see the README.md for instructions on how to integrate our package with your build system.
- Removed transitive dependency on Protobuf-Java.
- Moved all external .proto dependencies into this repository.
- Upgraded from Gradle 4 to Gradle 6.
- Upgraded third party dependencies to newer versions.
- Fixed incorrect time being parsed from timestamps.
- Fixed bugs in Tournaments test suite.
- Fixed UTC parsing.
- Updated gRPC, GSON and Lombok dependencies.
- More ways to create a socket connection.
- Correctly decode UserPresence from payload.
- Add support for session vars.
- Add support for sending metadata when joining a match with an ID.
- Add pagination support for friends and groups.
- Add support for listing expired leaderboard/tournament records.
- Support for Nakama 2.
- Build storage update messages with valid operations.
- Support for In-App Notifications feature.
- Support for Friends feature.
- Support for Groups feature.
- Leaderboard sort order is now exposed as an enum rather than a number.
- Use correct name for inconsistently defined topic leave message builder method.
- Expose a simpler interface for identifier fields.
- Advanced Matchmaking with custom filters and user properties.
- Improved errors to contain the underlying error reason.
- Leaderboard messages.
- Matchmaking messages.
- Match messsages.
- Match presence updates.
- Topic messages.
- Topic presence updates.
- Pin transitive SLF4J dependency on 1.7.* stable release.
- Use "okio.ByteString" rather than "java.util.Base64" for base64 support.
- Correctly expose builder functions to external packages.
- Initial public release.