MC Toolkit

Poradniki / Polecenia i dane

Głowy graczy według nazwy użytkownika: jak działa komponent profilu i dlaczego głowy stają się puste

Głowa przechowuje migawkę skina, a nie aktywne odwołanie. Oto komponent profilu, dlaczego stara głowa pokazuje zły skin i jak wpisuje się w to wyszukiwanie UUID.

Nadanie głowy gracza brzmi jak coś, co powinno być jednym argumentem. I jest, ale to, co zostaje zapisane, nie jest tym, czego ludzie się spodziewają — i to wyjaśnia większość osobliwości związanych z głowami.

Komenda

/give @p player_head[profile="Notch"]

Komponent profile zastąpił stary NBT SkullOwner. Fragmenty używające {SkullOwner:"Notch"} pochodzą sprzed 1.20.5 i nic teraz nie robią.

Co właściwie zostaje zapisane

Głowa nadana jako profile="Notch" przechowuje tylko nazwę. To dynamiczny profil — tak mówi podpowiedź przedmiotu — a klient każdego gracza wyszukuje nazwę i pobiera skin, gdy rysuje głowę. Głowa zawiera stałą migawkę tylko wtedy, gdy jej profil obejmuje samą teksturę:

"profile": {
  "name": "Notch",
  "id": [I; …],
  "properties": [{ "name": "textures", "value": "<base64>" }]
}

Dwie konsekwencje:

  • Głowa oparta na nazwie podąża za aktualnym skinem gracza. Jest wyszukiwana ponownie przy rysowaniu; klient przechowuje wyszukany skin, dopóki nie pozostanie nieużywany przez pięć minut. Tylko głowa zawierająca właściwość textures jest zamrożona na jednym skinie.
  • Miejscem rozwiązywania jest maszyna odbiorcy. Głowa z zapisaną właściwością textures renderuje się bez żadnego wyszukiwania. Głowa oparta na nazwie zależy od tego, czy klient każdego odbiorcy dotrze do Mojang, a nie od trybu online serwera.

Dlaczego głowa jest pusta lub pokazuje Steve'a

Według prawdopodobieństwa:

  1. Nazwa nie została rozwiązana dla tego klienta. API Mojang było nieosiągalne lub wyszukiwanie wciąż trwa; głowa pokazuje domyślny skin, dopóki się nie zakończy.
  2. Nazwa nie istnieje. Mojang nic nie zwraca dla usuniętych lub nigdy niezarejestrowanych kont.
  3. Wciąż trwa rozwiązywanie. Wyszukiwanie działa w tle, więc głowa może pokazywać domyślny skin przez chwilę po pierwszym pojawieniu się w polu widzenia.

Głowa oparta na nazwie ponawia próbę sama, gdy wygaśnie jej wpis w pamięci podręcznej. Aby zamiast tego zamrozić skin, nadaj głowę z jej właściwością textures — /fetchprofile name <name> rozwiązuje gracza i oferuje pełny komponent do skopiowania lub gotową głowę do nadania.

Niestandardowe głowy używają tekstury, nie nazwy

Głowy dekoracyjne — meble, jedzenie, głowy mobów z katalogów — nie mają właściciela. Zawierają tylko wartość tekstury properties z ciągiem base64 wskazującym na URL tekstury. Dlatego można je udostępniać jako jedną długą komendę give i dlatego nigdy się nie psują, gdy gracz zmieni nazwę.

Base64 dekoduje się do małego JSON-a zawierającego textures.SKIN.url na textures.minecraft.net. Nic więcej w nim nie ma znaczenia dla renderowania.

Formaty UUID

Istnieją dwie formy i nie są wymienne w każdym kontekście:

trimmed   069a79f444e94726a5befca90e38aaf5
dashed    069a79f4-44e9-4726-a5be-fca90e38aaf5

Komendy i NBT zazwyczaj oczekują formy z myślnikami lub tablicy liczb całkowitych. API internetowe zwykle zwracają formę skróconą. Konwersja między nimi jest mechaniczna — wstaw myślniki po 8, 12, 16 i 20 znaku.

Nadaj głowę z nazwy użytkownika, przeglądaj katalogi głów dekoracyjnych lub konwertuj między formatami UUID w Player Head & Username Tools.

Głowy i nicki graczy →

Więcej poradników

Zobacz wszystkie →