Rehberler / Komutlar ve Veriler
Kullanıcı adına göre oyuncu kafaları: profil bileşeni nasıl çalışır ve kafalar neden boş görünür
Bir kafa canlı bir bağlantı değil, bir görünüm anlık görüntüsü saklar. İşte profil bileşeni, eski bir kafanın neden yanlış görünümü gösterdiği ve UUID aramasının bu işin neresinde olduğu.
Bir oyuncunun kafasını vermek tek bir argümanla olmalı gibi görünüyor. Öyle de, ama saklanan şey insanların beklediği şey değil ve bu, kafalarla ilgili tuhaflıkların çoğunu açıklıyor.
Komut
/give @p player_head[profile="Notch"]
profile bileşeni eski SkullOwner NBT'sinin yerini aldı. {SkullOwner:"Notch"} kullanan kod parçacıkları 1.20.5 öncesine aittir ve artık hiçbir şey yapmaz.
Aslında ne saklanıyor
profile="Notch" olarak verilen bir kafa yalnızca adı saklar. Bu dinamik bir profildir — eşyanın araç ipucu bunu söyler — ve her oyuncunun istemcisi kafayı çizerken adı arar ve görünümü indirir. Bir kafa yalnızca profili dokunun kendisini içerdiğinde sabit bir anlık görüntü taşır:
"profile": {
"name": "Notch",
"id": [I; …],
"properties": [{ "name": "textures", "value": "<base64>" }]
}
İki sonuç:
- Ada dayalı bir kafa, oyuncunun güncel görünümünü takip eder. Çizilirken yeniden aranır; istemci, aranan bir görünümü beş dakika kullanılmadan geçene kadar saklar. Yalnızca
texturesözelliği taşıyan bir kafa tek bir görünüme sabitlenmiştir. - Nerede çözümlendiği, görüntüleyenin makinesidir. İçine işlenmiş
texturesözelliği olan bir kafa hiç arama yapılmadan çizilir. Ada dayalı bir kafa, sunucunun çevrimiçi moduna değil, her görüntüleyenin istemcisinin Mojang'a ulaşmasına bağlıdır.
Bir kafa neden boş görünür veya Steve gösterir
Olasılık sırasına göre:
- Ad bu istemci için çözümlenemedi. Mojang'ın API'sine ulaşılamadı ya da arama hâlâ beklemede; kafa, çözümlenene kadar varsayılan bir görünüm gösterir.
- Ad mevcut değil. Mojang, silinmiş veya hiç kaydedilmemiş hesaplar için hiçbir şey döndürmez.
- Hâlâ çözümleniyor. Arama arka planda çalışır, bu yüzden bir kafa ilk görüş alanına girdikten sonra bir an için varsayılan gösterebilir.
Ada dayalı bir kafa, önbellek girdisinin süresi dolduğunda kendi kendine yeniden dener. Bunun yerine bir görünümü sabitlemek için kafayı textures özelliğiyle birlikte verin — /fetchprofile name <name> bir oyuncuyu çözümler ve kopyalamak için tam bileşeni ya da vermek için hazır bir kafa sunar.
Özel kafalar adı değil dokuyu kullanır
Dekoratif kafalar — mobilya, yemek, kataloglardan gelen yaratık kafaları — bir sahibe sahip değildir. Yalnızca bir doku URL'sine işaret eden base64 blobuyla birlikte properties doku değerini taşırlar. Bu yüzden tek bir uzun verme komutu olarak paylaşılabilirler ve bir oyuncu adını değiştirdiğinde asla bozulmazlar.
Base64, textures.minecraft.net üzerinde bir textures.SKIN.url içeren küçük bir JSON'a çözülür. İçindeki başka hiçbir şey çizim için önemli değildir.
UUID biçimleri
İki biçim vardır ve her bağlamda birbirlerinin yerine kullanılamazlar:
trimmed 069a79f444e94726a5befca90e38aaf5
dashed 069a79f4-44e9-4726-a5be-fca90e38aaf5
Komutlar ve NBT genellikle tireli biçimi ya da bir tamsayı dizisini ister. Web API'leri genellikle tiresiz döndürür. Aralarında dönüştürmek mekaniktir — 8, 12, 16 ve 20 karakterden sonra tire ekleyin.
Bir kafayı kullanıcı adından verin, dekoratif kafa kataloglarına göz atın veya UUID biçimleri arasında Oyuncu Kafası ve Kullanıcı Adı Araçları ile dönüştürün.