Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e3de2716c | ||
|
|
2d1c9963e9 | ||
|
|
6258df003f |
@@ -5,6 +5,18 @@ on:
|
|||||||
branches: [main]
|
branches: [main]
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
|
env:
|
||||||
|
http_proxy: http://172.21.5.18:1080
|
||||||
|
https_proxy: http://172.21.5.18:1080
|
||||||
|
HTTP_PROXY: http://172.21.5.18:1080
|
||||||
|
HTTPS_PROXY: http://172.21.5.18:1080
|
||||||
|
no_proxy: 192.168.88.60,git.mcbcorp.ru,localhost,127.0.0.1
|
||||||
|
NO_PROXY: 192.168.88.60,git.mcbcorp.ru,localhost,127.0.0.1
|
||||||
|
GRADLE_OPTS: >-
|
||||||
|
-Dhttp.proxyHost=172.21.5.18 -Dhttp.proxyPort=1080
|
||||||
|
-Dhttps.proxyHost=172.21.5.18 -Dhttps.proxyPort=1080
|
||||||
|
-Dhttp.nonProxyHosts=192.168.88.60|git.mcbcorp.ru|localhost|127.0.0.1
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -14,6 +26,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
java-version: '21'
|
java-version: '21'
|
||||||
|
cache: gradle
|
||||||
- run: chmod +x ./gradlew
|
- run: chmod +x ./gradlew
|
||||||
- run: ./gradlew build --no-daemon
|
- run: ./gradlew build --no-daemon
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
|
|||||||
@@ -4,6 +4,18 @@ on:
|
|||||||
push:
|
push:
|
||||||
tags: ['v*']
|
tags: ['v*']
|
||||||
|
|
||||||
|
env:
|
||||||
|
http_proxy: http://172.21.5.18:1080
|
||||||
|
https_proxy: http://172.21.5.18:1080
|
||||||
|
HTTP_PROXY: http://172.21.5.18:1080
|
||||||
|
HTTPS_PROXY: http://172.21.5.18:1080
|
||||||
|
no_proxy: 192.168.88.60,git.mcbcorp.ru,localhost,127.0.0.1
|
||||||
|
NO_PROXY: 192.168.88.60,git.mcbcorp.ru,localhost,127.0.0.1
|
||||||
|
GRADLE_OPTS: >-
|
||||||
|
-Dhttp.proxyHost=172.21.5.18 -Dhttp.proxyPort=1080
|
||||||
|
-Dhttps.proxyHost=172.21.5.18 -Dhttps.proxyPort=1080
|
||||||
|
-Dhttp.nonProxyHosts=192.168.88.60|git.mcbcorp.ru|localhost|127.0.0.1
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -13,6 +25,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
java-version: '21'
|
java-version: '21'
|
||||||
|
cache: gradle
|
||||||
- run: chmod +x ./gradlew
|
- run: chmod +x ./gradlew
|
||||||
- run: ./gradlew build --no-daemon
|
- run: ./gradlew build --no-daemon
|
||||||
- uses: akkuman/gitea-release-action@v1
|
- uses: akkuman/gitea-release-action@v1
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
HDSkinSupportGravit License
|
||||||
|
|
||||||
|
Copyright (c) 2026 Nghtly
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person to use, copy,
|
||||||
|
modify, merge, publish, and distribute this software and its source code, in
|
||||||
|
whole or in part, for any purpose.
|
||||||
|
|
||||||
|
Condition for commercial use:
|
||||||
|
Any commercial use, distribution, or product (paid, monetized, or as part of a
|
||||||
|
paid service) that includes this software or a work derived from it must give
|
||||||
|
visible credit to the original author, "Nghtly" — for example in the product
|
||||||
|
description, credits screen, or accompanying documentation.
|
||||||
|
|
||||||
|
Non-commercial use carries no attribution requirement.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY ARISING FROM, OUT OF, OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR ITS USE.
|
||||||
@@ -1,18 +1,34 @@
|
|||||||
# SkinsG
|
# HDSkinSupportGravit
|
||||||
|
|
||||||
Client-side Minecraft mod that adds **HD skins** (up to 2048×2048) and **animated GIF capes**
|
Client-side Minecraft mod that adds **HD skins** (up to 2048×2048) and, importantly,
|
||||||
(with HD & transparency), driven by a launcher/site asset API keyed on player UUID.
|
**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
|
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.
|
(GIF decoder, cape state, mixins) is written to be loader/version agnostic.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- HD skins: the legacy-skin conversion is rescaled so 128/256/…/2048-wide skins render correctly.
|
- **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
|
- **GIF capes**: animated capes decoded from GIF (HD, transparency, per-frame timing). Decoded once,
|
||||||
per-frame decoding, no AWT, so it doesn't cost FPS. Playback speed comes from the GIF itself.
|
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.
|
- 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
|
## 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"`;
|
- `baseUrl` — root of your asset API (no hardcoded host in the mod).
|
||||||
if the response is a GIF it is animated, otherwise the vanilla cape is kept.
|
|
||||||
- `globalSpeed` — playback speed in percent (`100` = the GIF's own timing).
|
- `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.
|
- 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
|
## License
|
||||||
|
|
||||||
All rights reserved.
|
Free to use and modify for any purpose. Commercial use must credit the author (Nghtly).
|
||||||
|
See [LICENSE](LICENSE).
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ loader_version_range=[1,)
|
|||||||
# Must match the String constant located in the main mod class annotated with @Mod.
|
# Must match the String constant located in the main mod class annotated with @Mod.
|
||||||
mod_id=skinsg
|
mod_id=skinsg
|
||||||
# The human-readable display name for the mod.
|
# The human-readable display name for the mod.
|
||||||
mod_name=NightSync Skins (HD + animated capes)
|
mod_name=HD Skin Support (Gravit)
|
||||||
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
||||||
mod_license=All Rights Reserved
|
mod_license=All Rights Reserved
|
||||||
# The mod version. See https://semver.org/
|
# The mod version. See https://semver.org/
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ license="${mod_license}"
|
|||||||
modId="${mod_id}"
|
modId="${mod_id}"
|
||||||
version="${mod_version}"
|
version="${mod_version}"
|
||||||
displayName="${mod_name}"
|
displayName="${mod_name}"
|
||||||
displayURL="https://git.mcbcorp.ru/Fiden/SkinsG"
|
displayURL="https://git.mcbcorp.ru/Fiden/HDSkinSupportGravit"
|
||||||
authors="Nghtly"
|
authors="Nghtly"
|
||||||
description='''
|
description='''
|
||||||
HD skins (up to 2048x2048) and animated GIF capes, driven by a UUID-keyed asset API.
|
HD skins (up to 2048x2048) and animated GIF capes, driven by a UUID-keyed asset API.
|
||||||
|
|||||||
Reference in New Issue
Block a user