यूज़रनेम द्वारा प्लेयर हेड्स: प्रोफाइल कॉम्पोनेंट कैसे काम करता है और हेड्स खाली क्यों हो जाते हैं
एक हेड स्किन का स्नैपशॉट स्टोर करता है, लाइव लिंक नहीं। यहाँ प्रोफाइल कॉम्पोनेंट, पुराना हेड गलत स्किन क्यों दिखाता है, और UUID लुकअप कैसे काम करता है, इसकी जानकारी है।
प्लेयर का हेड देना ऐसा लगता है जैसे यह एक ही तर्क होना चाहिए। यह है भी, लेकिन जो स्टोर होता है वह वैसा नहीं है जैसा लोग उम्मीद करते हैं, और यह हेड से जुड़ी अधिकांश अजीब चीज़ों को समझाता है।
कमांड
/give @p player_head[profile="Notch"]
यह profile component replaced the old SkullOwner NBT. Snippets using {SkullOwner:"Notch"} are pre-1.20.5 and do nothing now.
असल में क्या स्टोर होता है
एक हेड नहीं यूज़रनेम स्टोर करके बाद में स्किन प्राप्त नहीं करता है। जब हेड बनाया जाता है, तो सर्वर नाम को एक UUID और एक टेक्सचर स्नैपशॉट, और उसे आइटम में बेक कर देता है:
"profile": {
"name": "Notch",
"id": [I; …],
"properties": [{ "name": "textures", "value": "<base64>" }]
}
दो परिणाम:
- एक साल पहले बनाया गया हेड उसी साल की स्किन दिखाता है। खिलाड़ी द्वारा अपनी स्किन बदलने पर भी
दुनिया में पहले से मौजूद हेड्स अपडेट नहीं होते हैं। यह कोई बग नहीं है और कोई रिफ्रेश नहीं होता है।
- हेड्स ऑफलाइन काम करते हैं। एक बार बेक होने के बाद, इसे रेंडर करने के लिए किसी Mojang API कॉल की आवश्यकता नहीं होती है, जो
कारण है कि हेड्स ऑफलाइन-मोड सर्वर पर भी बने रहते हैं जबकि /give ... profile="Name" does not resolve there.
हेड खाली क्यों है या Steve क्यों दिखाता है
संभावना के क्रम में:
- नाम रिज़ॉल्व नहीं हुआ। ऑफलाइन-मोड सर्वर, या API अनुपलब्ध था जब
कमांड चलाई गई थी। बेक करने के लिए कुछ नहीं था, इसलिए आपको डिफ़ॉल्ट मिलता है।
- नाम मौजूद नहीं है। Mojang हटाए गए या कभी रजिस्टर न किए गए
खातों के लिए कुछ भी नहीं लौटाता है।
- Chunk रीलोड नहीं हुआ। हेड एसिंक्रोनस रूप से रिज़ॉल्व होता है; कभी-कभी आपको दूसरी तरफ देखकर
वापस देखना पड़ता है।
इंतज़ार करने से शायद ही मदद मिलती है — यदि निर्माण के समय प्रोफाइल बेक नहीं हुई थी, तो यह खाली ही रहती है। हेड को फिर से दें।
कस्टम हेड्स नाम का नहीं, बल्कि टेक्सचर का उपयोग करते हैं
सजावटी हेड्स — कैटलॉग से फ़र्नीचर, भोजन, मॉब हेड्स — का कोई मालिक नहीं होता है। वे केवल वहन करते हैं 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.
base64 एक छोटे JSON में डिकोड होता है जिसमें एक textures.SKIN.url on textures.minecraft.net. Nothing else in it matters for rendering.
UUID फॉर्मेट
दो रूप मौजूद हैं और वे हर संदर्भ में एक-दूसरे के स्थान पर प्रयोग करने योग्य नहीं हैं:
trimmed 069a79f444e94726a5befca90e38aaf5
dashed 069a79f4-44e9-4726-a5be-fca90e38aaf5
Commands और NBT आमतौर पर डैश वाला रूप या एक पूर्णांक ऐरे चाहते हैं। वेब API आमतौर पर ट्रिम किया हुआ रूप लौटाते हैं। उनके बीच बदलना यांत्रिक है — 8, 12, 16 और 20 वर्णों के बाद डैश डालें।
यूज़रनेम से हेड दें, सजावटी हेड कैटलॉग ब्राउज़ करें, या इसमें UUID फॉर्मेट के बीच कनवर्ट करें Player Head & Username Tools.