Mga player head ayon sa username: paano gumagana ang profile component at bakit nagiging blangko ang mga ulo
Nag-iimbak ang ulo ng snapshot ng skin, hindi live link. Narito ang profile component, kung bakit maling skin ang ipinapakita ng lumang ulo, at paano nauugnay ang paghahanap ng UUID.
Ang pagbibigay ng ulo ng manlalaro ay tila dapat ay isang argumento lang. Oo nga, ngunit ang naiimbak ay hindi ang inaasahan ng mga tao, at iyon ang nagpapaliwanag sa karamihan ng mga kakaibang bagay tungkol sa ulo.
Ang command
/give @p player_head[profile="Notch"]
Ang profile component replaced the old SkullOwner NBT. Snippets using {SkullOwner:"Notch"} are pre-1.20.5 and do nothing now.
Ang aktwal na naiimbak
Ang ulo ay hindi nag-iimbak ng username at kumukuha ng skin kalaunan. Kapag nilikha ang ulo, niresolba ng server ang pangalan sa isang UUID at isang snapshot ng texture, at ibinabake iyon sa aytem:
"profile": {
"name": "Notch",
"id": [I; …],
"properties": [{ "name": "textures", "value": "<base64>" }]
}
Dalawang kahihinatnan:
- Ang ulong ginawa isang taon na ang nakalipas ay nagpapakita ng skin ng taong iyon. Ang pagpapalit ng skin ng manlalaro ay
hindi nag-a-update ng mga ulong nasa mundo na. Hindi ito bug at walang refresh.
- Gumagana ang mga ulo offline. Kapag na-bake na, hindi na kailangan ng tawag sa Mojang API upang i-render ito, na siyang
dahilan kung bakit nananatili ang mga ulo sa mga offline-mode server habang /give ... profile="Name" does not resolve there.
Bakit blangko o nagpapakita ng Steve ang isang ulo
Ayon sa pagkakasunod-sunod ng posibilidad:
- Hindi naresolba ang pangalan. Offline-mode server, o hindi maabot ang API noong ang
command ay tumakbo. Walang mai-bake, kaya default ang makukuha mo.
- Hindi umiiral ang pangalan. Walang ibinabalik ang Mojang para sa mga binura o hindi kailanman nairehistrong
mga account.
- Hindi na-reload ang chunk. Asynchronously na nireresolba ang ulo; paminsan-minsan ay kailangan mong tumingin
sa malayo at pabalik.
Bihirang makatulong ang paghihintay — kung hindi na-bake ang profile noong ginawa ito, mananatili itong walang laman. Ibigay muli ang ulo.
Gumagamit ang mga custom head ng texture, hindi pangalan
Ang mga pampalamuting ulo — kasangkapan, pagkain, mga ulo ng mob mula sa mga katalogo — ay walang may-ari. Dala lamang ng mga ito ang properties texture value with a base64 blob pointing at a texture URL. That is why they are shareable as a single long give command and why they never break when a player renames.
Ang base64 ay nagde-decode sa isang maliit na JSON na naglalaman ng textures.SKIN.url on textures.minecraft.net. Nothing else in it matters for rendering.
Mga format ng UUID
Mayroong dalawang anyo at hindi maaaring pagpalitin ang mga ito sa bawat konteksto:
trimmed 069a79f444e94726a5befca90e38aaf5
dashed 069a79f4-44e9-4726-a5be-fca90e38aaf5
Karaniwang kailangan ng mga command at NBT ang anyong may gitling o integer array. Karaniwang nagbabalik ng trimmed ang mga web API. Mekanikal ang pag-convert sa pagitan ng mga ito — maglagay ng mga gitling pagkatapos ng 8, 12, 16 at 20 character.
Magbigay ng ulo mula sa isang username, mag-browse ng mga katalogo ng pampalamuting ulo, o mag-convert sa pagitan ng mga format ng UUID sa Mga Tool sa Player Head at Username.