Kepala Pemain berdasarkan Nama Pengguna: Cara Kerja Komponen Profil dan Mengapa Kepala Menjadi Kosong
Sebuah kepala menyimpan cuplikan kulit, bukan tautan langsung. Berikut adalah komponen profil, mengapa kepala lama menampilkan kulit yang salah, dan bagaimana pencarian UUID berperan.
Memberikan Kepala Pemain terdengar seperti hanya membutuhkan satu argumen. Memang begitu, tetapi apa yang disimpan tidak seperti yang orang harapkan, dan itulah yang menjelaskan sebagian besar keanehan terkait kepala.
Perintah
/give @p player_head[profile="Notch"]
Komponen profile menggantikan NBT SkullOwner yang lama. Cuplikan yang menggunakan {SkullOwner:"Notch"} adalah pra-1.20.5 dan tidak berfungsi lagi sekarang.
Apa yang Sebenarnya Disimpan
Sebuah kepala tidak menyimpan nama pengguna dan mengambil kulitnya nanti. Saat kepala dibuat, server menyelesaikan nama tersebut menjadi UUID dan cuplikan tekstur, lalu memasukkannya ke dalam item:
"profile": {
"name": "Notch",
"id": [I; …],
"properties": [{ "name": "textures", "value": "<base64>" }]
}
Dua konsekuensi:
- Kepala yang dibuat setahun lalu menampilkan kulit tahun itu. Pemain Ganti kulit mereka tidak
memperbarui kepala yang sudah ada di dunia. Ini bukan bug dan tidak ada penyegaran.
- Kepala berfungsi secara offline. Setelah dimasukkan, tidak ada Seruan API Mojang yang diperlukan untuk merendernya,
itulah sebabnya kepala bertahan di server mode offline sementara /give ... profile="Name" tidak terselesaikan di sana.
Mengapa Kepala Kosong atau Menampilkan Steve
Berdasarkan kemungkinan:
- Nama tidak terselesaikan. Server mode offline, atau API tidak dapat dijangkau saat
perintah dijalankan. Tidak ada yang dimasukkan, jadi Anda mendapatkan default.
- Nama tidak ada. Mojang tidak mengembalikan apa pun untuk akun yang dihapus atau belum pernah terdaftar.
- Chunk tidak dimuat ulang. Kepala terselesaikan secara asinkron; terkadang Anda perlu melihat
ke arah lain lalu kembali.
Menunggu jarang membantu — jika profil tidak dimasukkan saat pembuatan, profil akan tetap kosong. Berikan kembali kepala tersebut.
Kepala Kustom Menggunakan Tekstur, Bukan Nama
Kepala dekoratif — furnitur, makanan, kepala monster dari katalog — tidak memiliki Pemilik. Mereka hanya membawa nilai tekstur properties dengan blob base64 yang menunjuk ke URL tekstur. Itulah sebabnya mereka dapat dibagikan sebagai satu perintah pemberian yang panjang dan mengapa mereka tidak pernah rusak saat Pemain Ganti nama.
Base64 mendekode menjadi JSON kecil yang berisi textures.SKIN.url pada textures.minecraft.net. Tidak ada hal lain di dalamnya yang penting untuk rendering.
Format UUID
Dua bentuk ada dan tidak dapat dipertukarkan dalam setiap konteks:
trimmed 069a79f444e94726a5befca90e38aaf5
dashed 069a79f4-44e9-4726-a5be-fca90e38aaf5
Perintah dan NBT umumnya menginginkan bentuk dengan tanda hubung atau array integer. API web biasanya mengembalikan bentuk yang dipangkas. Mengonversi di antara keduanya bersifat mekanis — masukkan tanda hubung setelah 8, 12, 16, dan 20 karakter.
Berikan kepala dari nama pengguna, telusuri katalog kepala dekoratif, atau konversi antara format UUID di Alat Kepala Pemain & Nama Pengguna.