Skip to content

Repository files navigation

Polski · English

Historia zmian

🎭 SkinLibrary

Serwerowa biblioteka skinów dla Fabrica — gracz wybiera skin z klikalnej listy na czacie.

Wrzucasz pliki .png do folderu, gracz wchodzi zwykłym klientem i wpisuje /skin. Nic do zainstalowania po stronie gracza, żadnego własnego serwisu WWW ani kluczy API.

Pobierz jar   Minecraft   Licencja

SkinLibrary — postać przewija się przez skiny z biblioteki

Co to robi

Komenda Co się dzieje
/skin Przegląda bibliotekę — strony, grupowanie po autorze, pozycje są klikalne
/skin <nazwa> Zakłada skin z biblioteki
/skin random Zakłada losowy
/skin player <nick> Zakłada skin dowolnego konta Minecraft
/skin url <adres> Zakłada skin z linku do PNG
/skin reset Wraca do skina własnego konta
/skin reload Przeładowuje bibliotekę (operatorzy)

Samą podmianę skina i wysyłkę do MineSkin robi FabricTailor; SkinLibrary dokłada do tego gotową bibliotekę i przeglądarkę na czacie.

Jak to wygląda

Materiały trzymamy w docs/media/ — nazwy plików są już podpięte poniżej, po wrzuceniu nagrania wystarczy odkomentować odpowiednią linię (instrukcja nagrywania: docs/media/README.md).

Przeglądanie biblioteki na czacie

Funkcje

  • 🖱️ Klikalna lista na czacie — stronicowana, grupowana po autorze, z nawigacją „◀ Poprzednia / Następna ▶" i skrótami 🎲 Losowy / ↺ Oryginalny.
  • ⌨️ Podpowiedzi (tab-complete) nazw skinów — nie trzeba pamiętać, co jest w bibliotece.
  • 📁 Biblioteka to zwykły folder — nazwa pliku staje się nazwą skina, /skin reload i gotowe.
  • 🌐 Skiny spoza biblioteki/skin player <nick> i /skin url <adres>, jedno i drugie można wyłączyć w konfiguracji.
  • 🧠 Cache tekstur — raz pobrana tekstura nie leci do MineSkin drugi raz.
  • 🗣️ Tłumaczeniaen_us i pl_pl w środku, własny język bez przebudowy jara.
  • 📦 Jeden jar na 1.21–1.21.10 — bez mixinów, bez buildu pod każdą wersję.
  • 🔌 Opcjonalny katalog po HTTP (libraryUrl) — jeśli już masz własny serwis ze skinami.

Wymagania

Serwer Fabric od 1.21 do 1.21.10, Java 21, a w mods/: Fabric API i FabricTailor.

Mod jest wyłącznie serwerowy — gracze łączą się niezmodowanym klientem.

Szybki start

  1. Wrzuć fabric-api, fabrictailor i skinlibrary do folderu mods/ serwera.
  2. Uruchom serwer raz — utworzy config/skinlibrary/.
  3. Wrzuć skiny .png (64×64 albo 64×32) do config/skinlibrary/skins/.
  4. /skin reload i są dostępne.

Nazwa pliku staje się nazwą skina: pirat.png/skin pirat.

Konfiguracja

config/skinlibrary/config.json, tworzony przy pierwszym starcie:

{
  "language": "en_us",
  "allowPlayerSkins": true,
  "allowUrlSkins": true,
  "cooldownSeconds": 5,
  "requireOperator": false,
  "pageSize": 8,
  "slimByDefault": false,
  "libraryUrl": "",
  "commandAliases": ["skin", "skins"]
}

Nic tu nie jest wymagane — domyślne wartości działają. Warte uwagi:

  • commandAliases — zmiana nazwy komendy, gdy /skin zajmuje już inny mod.
  • slimByDefault — traktuje skiny z plików jako model smukły (Alex).
  • libraryUrl — opcjonalny katalog po HTTP, jeśli już taki prowadzisz. Musi odpowiadać {"skins": [{"name": "...", "value": "...", "signature": "...", "author": "..."}]}; zamiast value wpis może podać url.

Bogatsze wpisy

Na wszystko poza „PNG w folderze" jest config/skinlibrary/skins.json:

{
  "notch":  { "player": "Notch",                      "author": "mojang" },
  "banner": { "url": "https://example.com/skin.png",  "author": "alice"  },
  "alex":   { "file": "alex.png", "slim": true,       "author": "bob"    }
}

Wpisy są w przeglądarce grupowane po author, więc na wspólnym serwerze widać, kto co dodał.

Tłumaczenia

W środku: en_us, pl_pl — wybierasz polem language.

Własny język: wrzuć config/skinlibrary/lang/<kod>.json z tymi samymi kluczami co en_us.json — bez przebudowy jara.

Wersje Minecrafta

Jeden jar obsługuje 1.21 – 1.21.10. Mod nie ma mixinów i trzyma się z dala od tych części API, które zmieniają się między wydaniami, więc nie wymaga buildu pod każdą wersję.

Jedyny wyjątek to klikalny czat: Minecraft 1.21.5 wymienił API zdarzeń kliknięcia/najechania. Na 1.21.5+ lista jest klikalna, na starszych wydaniach ta sama lista wypisuje się bez klikania, a reszta działa bez zmian.

Budowanie

./gradlew build              # wymaga Java 21
python3 tools/check_lang.py  # klucze komunikatów zgodne we wszystkich językach

Jar ląduje w build/libs/.

⚠️ Coś nie działa?

Zgłoś błąd

Każde zgłoszenie czytam. Formularz sam pyta o wersję moda, wersję Minecrafta i loader — wystarczy wypełnić.

Important

Dołącz logs/latest.log z serwera. Bez niego zwykle nie da się nic ustalić. Gdy serwer się wywalił, dorzuć też plik z crash-reports/.

Komenda kończy się komunikatem „An unexpected error occurred"? Ślad po niej jest w logu serwera, nie na czacie — na czacie widać tylko, że coś poszło źle.

Licencja

MIT.

About

Server-side skin library for Fabric: drop PNGs in a folder, players pick skins from a clickable in-chat list. One jar for 1.21+.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages