Add license and README, document GIF cape + backend integration, cache CI
Build / build (push) Has been cancelled

This commit is contained in:
Nghtly
2026-07-04 18:01:30 +03:00
parent d404d7bf0b
commit 6258df003f
6 changed files with 51 additions and 12 deletions
+26 -10
View File
@@ -1,18 +1,34 @@
# SkinsG
# HDSkinSupportGravit
Client-side Minecraft mod that adds **HD skins** (up to 2048×2048) and **animated GIF capes**
(with HD & transparency), driven by a launcher/site asset API keyed on player UUID.
Client-side Minecraft mod that adds **HD skins** (up to 2048×2048) and, importantly,
**animated GIF cape support** — including HD and transparent GIFs — on top of a UUID-keyed
asset API. Built for GravitLauncher setups but backend-agnostic.
Currently targets **NeoForge 1.21.1**. Fabric/Forge and 1.20.1 / 1.19.2 are planned — the core
(GIF decoder, cape state, mixins) is written to be loader/version agnostic.
## Features
- HD skins: the legacy-skin conversion is rescaled so 128/256/…/2048-wide skins render correctly.
- GIF capes: decoded once, then played back by copying a pre-composited frame per tick — no
per-frame decoding, no AWT, so it doesn't cost FPS. Playback speed comes from the GIF itself.
- **HD skins**: the legacy-skin conversion is rescaled so 128/256/…/2048-wide skins render correctly.
- **GIF capes**: animated capes decoded from GIF (HD, transparency, per-frame timing). Decoded once,
then played back by copying a pre-composited frame per tick — no per-frame decoding, no AWT, so it
doesn't cost FPS. Playback speed comes from the GIF itself (overridable per player).
- HD PNG capes fall through to the vanilla renderer untouched.
- Per-player control and persistence (see below).
- Per-player control and persistence.
## Backend integration (easy)
The mod talks to your existing site/launcher backend over plain HTTP — no server-side plugin needed.
Set one value (`baseUrl`) in the config and the mod requests:
```
GET <baseUrl>/api/minecraft/cape/<uuid>?gif
```
If the response is a GIF it is animated; anything else (PNG / 404) keeps the vanilla cape. This maps
cleanly onto most launcher-site engines (DLE-based sites, custom backends, etc.) — you just expose
that one endpoint returning the player's GIF cape by UUID. HD skins use the normal skin URL your
launcher already serves, so they need no extra endpoint.
## Install
@@ -34,8 +50,7 @@ fetched until you set it.
}
```
- `baseUrl` — root of your asset API. The mod requests `"<baseUrl>/api/minecraft/cape/<uuid>?gif"`;
if the response is a GIF it is animated, otherwise the vanilla cape is kept.
- `baseUrl` — root of your asset API (no hardcoded host in the mod).
- `globalSpeed` — playback speed in percent (`100` = the GIF's own timing).
- The rest is managed by the in-game commands and shouldn't be edited by hand.
@@ -69,4 +84,5 @@ Output: `build/libs/skinsg-<version>.jar`. Requires JDK 21.
## License
All rights reserved.
Free to use and modify for any purpose. Commercial use must credit the author (Nghtly).
See [LICENSE](LICENSE).