Guides / Commands & Data

หัวผู้เล่นแบบกำหนดเองจัดเก็บ URL ที่อยู่ใน JSON แบบ base64 ไม่ใช่รูปภาพ

คอมโพเนนต์โปรไฟล์จะเก็บ base64 ของ {textures:{SKIN:{url:…}}} นี่คือเหตุผลที่รูปลักษณ์ของหัวผู้เล่นจะถูกกำหนดตายตัว ณ เวลาที่สร้าง และเป็นเหตุผลที่ฐานข้อมูลสามารถมีรายการได้หลายหมื่นรายการ

หัวผู้เล่นแบบกำหนดเองไม่ได้มีรูปภาพอยู่ภายใน แต่มี แฮชของพื้นผิว (texture hash) ที่อยู่ในรูปแบบ JSON ซึ่งถูกห่อหุ้มด้วย base64 และอยู่ในคอมโพเนนต์โปรไฟล์ของไอเทม

เลเยอร์ต่างๆ

เริ่มต้นจากแฮช คำสั่งจะถูกสร้างขึ้นดังนี้:

1. hash        e3b0c44298fc1c149afbf4c8996fb924…
2. JSON        {"textures":{"SKIN":{"url":"http://textures.minecraft.net/texture/<hash>"}}}
3. base64      eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6…
4. component   /give @p player_head[profile={properties:[{name:"textures",value:"<base64>"}]}]

มีสี่เลเยอร์เพื่อบอกว่า "หัวผู้เล่นนี้มีลักษณะเหมือนรูปภาพนั้น" คุณสมบัติจะถูกตั้งชื่อว่า textures เสมอ และค่าจะเป็น base64 ของโครงสร้าง JSON นั้นเสมอ

มีสองสิ่งที่เป็นผลโดยตรง:

หัวผู้เล่นคือภาพถ่าย ณ ขณะนั้น ไม่ใช่ลิงก์ไปยังบุคคล URL ชี้ไปยังไฟล์พื้นผิวที่ไม่สามารถเปลี่ยนแปลงได้ ไม่ใช่บัญชีผู้ใช้ สิ่งที่แฮชนั้นถูกแปลงเป็นเมื่อหัวผู้เล่นถูกสร้างขึ้น จะเป็นสิ่งที่มันจะแสดงให้เห็นเสมอ

ข้อมูลมีขนาดเล็กมาก รายการหัวผู้เล่นประกอบด้วยชื่อ, แฮช และแท็กบางอย่าง — ไม่มีไบต์ของรูปภาพเลย นี่คือเหตุผลที่แคตตาล็อกสามารถเก็บหัวผู้เล่นได้หลายหมื่นรายการในรูปแบบ JSON แบบคงที่ และยังคงโหลดได้อย่างรวดเร็ว

ทำไมแคตตาล็อกถึงโหลดตามหมวดหมู่

ฐานข้อมูลในที่นี้คือคอลเลกชันหัวผู้เล่น CC0 ของ TheSilentPro และจะถูกดึงมา ทีละหมวดหมู่ แทนที่จะดึงมาทั้งหมดในครั้งเดียว ดัชนีจะแสดงรายการหมวดหมู่และจำนวนรายการในแต่ละหมวดหมู่ การเลือกหมวดหมู่หนึ่งจะดึงเฉพาะไฟล์นั้นมาเท่านั้น

นี่ไม่ใช่การออกแบบที่ขี้เกียจ แต่เป็นรูปแบบเดียวที่ใช้งานได้กับขนาดข้อมูลระดับนี้ หากคอลเลกชันทั้งหมดเป็น JSON ไฟล์เดียว จะเป็นการดาวน์โหลดขนาดใหญ่สำหรับผู้ที่ต้องการหัวผู้เล่นเพียงสามชิ้นจากหมวดหมู่เดียว

ข้อจำกัดการแสดงผล 300 รายการคือข้อจำกัดของ DOM ไม่ใช่ข้อจำกัดการค้นหา

ผลลัพธ์จะถูกแสดงผลสูงสุด 300 รายการต่อครั้ง การค้นหายังคงทำงานกับทุกสิ่งในหมวดหมู่ที่โหลด — ข้อจำกัดนี้ใช้กับจำนวนรายการที่จะถูกแปลงเป็นโหนด DOM ไม่ใช่จำนวนรายการที่ถูกพิจารณา

ความแตกต่างนี้มีความสำคัญเมื่อการค้นหาบอกว่ากำลังแสดง 300 รายการแรก: รายการที่หายไปถูกพบแล้วและถูกระงับไม่ให้แสดงบนหน้าเว็บ ไม่ได้ถูกยกเว้นจากการค้นหา การจำกัดการค้นหาให้แคบลงจะทำให้รายการเหล่านั้นอยู่ในช่วงที่แสดงได้ แทนที่จะเป็นการค้นหาที่ยากขึ้น

การแสดงผลองค์ประกอบหลายหมื่นรายการพร้อมกันคือสิ่งที่ข้อจำกัดนี้มีอยู่เพื่อป้องกัน และเป็นข้อจำกัดที่แท้จริงมากกว่าตัวเลขกลมๆ เพื่อป้องกัน — ตารางขนาดใหญ่นั้นจะหยุดเลื่อนได้นานก่อนที่จะหยุดแสดงผลได้

ไม่มีอะไรในที่นี้อัปโหลดอะไรเลย

ข้อมูลหัวผู้เล่นเป็น JSON แบบคงที่ที่มาจากต้นทางเดียวกัน คำขอจากบุคคลที่สามเพียงอย่างเดียวคือการแสดงตัวอย่าง <img> จาก mc-heads.net ซึ่งจะแปลงแฮชเป็นรูปภาพเพื่อแสดงผล คำสั่ง /give ถูกสร้างขึ้นในเครื่องจากแฮช ดังนั้นคำสั่งจะทำงานได้ไม่ว่าการแสดงตัวอย่างนั้นจะโหลดหรือไม่ก็ตาม

คลังหัวผู้เล่น →

More guides

Browse all →

กำลังหาเครื่องมือ Minecraft อื่นอยู่ไหม

ชุดเครื่องมือสร้าง ดู และแปลงไฟล์ที่ทำงานในเบราว์เซอร์ ฟรีทั้งหมด