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.
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)
- 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]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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);commonpoints at its master.Changes
org.saturnclient:emotes-fabric:${emotes_version}+<mc>(bundled withinclude).emotes_version=0.1.0lives in the rootgradle.properties, and thesaturnclientmcMaven registry is added in the rootbuild.gradle.SaturnProviderImpl.playEmote: plays Saturn's emotes (fromcommon'sEmotesregistry) 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 sendsServiceClient.emote("").player_animproperties, 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:
build.gradle'ssourceSetsblock moved out ofdependencies {}, which Gradle 9.8 rejectsTesting
./gradlew buildAllbuilds all 8 versions. Each jar bundlesemotes-fabricand no longer contains player-animation-lib.runClienton 1.21.11 starts cleanly: the six emotes load and there are no mixin conflicts.🤖 Generated with Claude Code
- 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]>