Replace player-animation-lib with the Saturn emote library #22

Merged
selimaj-dev merged 2 commits from emote-library into master 2026-09-26 20:04:00 +00:00
Owner

Saturn now plays emotes with our own library (org.saturnclient:emotes-fabric), which bends limbs and supports every version we ship. Emotes work on 1.21.6+ again, where player-animation-lib was commented out. Depends on saturnclientmc/common#5 (merged); common points at its master.

Changes

  • Dependencies: every version pulls in org.saturnclient:emotes-fabric:${emotes_version}+<mc> (bundled with include). emotes_version=0.1.0 lives in the root gradle.properties, and the saturnclientmc Maven registry is added in the root build.gradle.
  • SaturnProviderImpl.playEmote: plays Saturn's emotes (from common's Emotes registry) through the library. An empty or unknown ID stops the current emote, and a null UUID (not connected yet) is ignored.
  • KeyInputHandler: sneaking stops your own emote and sends ServiceClient.emote("").
  • Removed: every player-animation-lib and bendy-lib reference: the KoSmX repository, the dependencies, the player_anim properties, and the old code, live in 1.21.4–1.21.5 and commented out elsewhere.

Build toolchain

The emotes jar is built with Loom 1.17, and older Loom refuses to remap it, so:

  • Loom 1.15 → 1.17.21 (every version)
  • Gradle 9.3 → 9.8 (needed by Loom 1.17)
  • the root build.gradle's sourceSets block moved out of dependencies {}, which Gradle 9.8 rejects

Testing

  • ./gradlew buildAll builds all 8 versions. Each jar bundles emotes-fabric and no longer contains player-animation-lib.
  • runClient on 1.21.11 starts cleanly: the six emotes load and there are no mixin conflicts.
  • Playing emotes in game hasn't been tested yet.

🤖 Generated with Claude Code

Saturn now plays emotes with our own library (`org.saturnclient:emotes-fabric`), which bends limbs and supports every version we ship. Emotes work on 1.21.6+ again, where player-animation-lib was commented out. Depends on saturnclientmc/common#5 (merged); `common` points at its master. ## Changes - **Dependencies**: every version pulls in `org.saturnclient:emotes-fabric:${emotes_version}+<mc>` (bundled with `include`). `emotes_version=0.1.0` lives in the root `gradle.properties`, and the `saturnclientmc` Maven registry is added in the root `build.gradle`. - **`SaturnProviderImpl.playEmote`**: plays Saturn's emotes (from `common`'s `Emotes` registry) through the library. An empty or unknown ID stops the current emote, and a null UUID (not connected yet) is ignored. - **`KeyInputHandler`**: sneaking stops your own emote and sends `ServiceClient.emote("")`. - **Removed**: every player-animation-lib and bendy-lib reference: the KoSmX repository, the dependencies, the `player_anim` properties, and the old code, live in 1.21.4–1.21.5 and commented out elsewhere. ## Build toolchain The emotes jar is built with Loom 1.17, and older Loom refuses to remap it, so: - Loom 1.15 → **1.17.21** (every version) - Gradle 9.3 → **9.8** (needed by Loom 1.17) - the root `build.gradle`'s `sourceSets` block moved out of `dependencies {}`, which Gradle 9.8 rejects ## Testing - `./gradlew buildAll` builds all 8 versions. Each jar bundles `emotes-fabric` and no longer contains player-animation-lib. - `runClient` on 1.21.11 starts cleanly: the six emotes load and there are no mixin conflicts. - Playing emotes in game hasn't been tested yet. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
selimaj-dev added 2 commits 2026-09-26 19:22:00 +00:00
- Every version depends on org.saturnclient:emotes-fabric
  (${emotes_version}+<mc>, bundled). playEmote plays Saturn's emotes
  through it, and sneaking stops your own emote and tells the server.
  Emotes now work on 1.21.6+ too, where player-animation-lib was
  commented out.
- Removed every player-animation-lib and bendy-lib reference: the KoSmX
  repository, the dependencies, the player_anim properties, and the old
  (partly commented out) code in SaturnProviderImpl and KeyInputHandler.
- Build: Loom 1.15 -> 1.17.21 (the emotes jar is built with 1.17 and
  older Loom refuses it), Gradle 9.3 -> 9.8 (needed by Loom 1.17), and
  sourceSets moved out of the dependencies block in the root build.gradle,
  which Gradle 9.8 rejects.
- common: points at the emote-library branch (saturnclientmc/common#5).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Point common at master after saturnclientmc/common#5 merged
Check / compile (pull_request) Successful in 7m5s
1853b09443
Co-Authored-By: Claude Opus 5.5 <[email protected]>
selimaj-dev merged commit 6ed2ac1b60 into master 2026-09-26 20:04:00 +00:00
selimaj-dev deleted branch emote-library 2026-09-26 20:04:03 +00:00
Sign in to join this conversation.