ID ของบล็อก, ไอเทม และเอนทิตี: เนมสเปซ, สถานะบล็อก และความแตกต่าง
ID ไม่ได้เป็นชื่อของไอเทมเสมอไป และ ID ของบล็อกก็ไม่เหมือนกับ ID ของไอเทม กฎการตั้งชื่อ การเปลี่ยนชื่อที่ทำให้คำสั่งเก่าใช้งานไม่ได้ และสถานะบล็อกเข้ามาเกี่ยวข้องอย่างไร
ทุกคำสั่งที่ล้มเหลวด้วยข้อความ "Unknown item" หรือ "Unknown block" เป็นปัญหาเกี่ยวกับ ID และกฎเกณฑ์นั้นละเอียดอ่อนกว่าแค่ "ตัวพิมพ์เล็กพร้อมขีดล่าง"
เนมสเปซไม่สามารถละเว้นได้ในข้อมูล
minecraft:diamond_sword
my_pack:custom_sword
คำสั่งอนุญาตให้คุณละเว้น minecraft: — /give @s diamond_sword ใช้งานได้ แต่ไฟล์ JSON ไม่ได้ ตารางของรางวัล (loot table) หรือสูตร (recipe) ที่มีเพียง diamond_sword จะล้มเหลว บางครั้งก็เงียบๆ การเขียนเนมสเปซทุกที่จะช่วยแก้ปัญหานี้ได้
ID ของบล็อกและ ID ของไอเทมเป็นคนละอย่างกัน
บล็อกบางชนิดไม่มีไอเทม ไอเทมบางชนิดวางบล็อกที่แตกต่างกัน:
| ไอเทม | บล็อกที่วาง |
|---|---|
minecraft:wheat_seeds | minecraft:wheat |
minecraft:redstone | minecraft:redstone_wire |
minecraft:string | minecraft:tripwire |
minecraft:flower_pot | minecraft:flower_pot, แต่กระถางต้นไม้เป็นบล็อกแยกต่างหาก |
| — | minecraft:water, minecraft:fire, minecraft:air ไม่มีไอเทม |
/setblock ใช้ ID ของ บล็อก /give ใช้ ID ของ ไอเทม การใช้ผิดเป็นสาเหตุที่พบบ่อยที่สุดของข้อความ "that id does not exist" ทั้งที่สิ่งนั้นมีอยู่จริง
สถานะบล็อกอยู่ในวงเล็บเหลี่ยม
/setblock ~ ~ ~ oak_stairs[facing=east,half=top,waterlogged=true]
สถานะเป็นคุณสมบัติของบล็อก ไม่ใช่ไอเทม — คุณไม่สามารถให้บันไดที่หมุนไว้ล่วงหน้าได้ เพราะการหมุนจะถูกกำหนดเมื่อวาง คุณสมบัติที่ไม่ได้ระบุจะใช้ค่าเริ่มต้น
waterlogged มักจะทำให้คนสับสน: มันมีอยู่ในบันได, แผ่นพื้น, รั้ว และอีกหลายอย่าง และการตั้งค่าบล็อกโดยไม่มีมันจะ ลบ น้ำที่เคยมีอยู่
การเปลี่ยนชื่อที่ทำให้คำสั่งเก่าใช้งานไม่ได้
ID บางส่วนมีการเปลี่ยนแปลง และ ID เก่าๆ ไม่เป็นที่รู้จักอีกต่อไป:
| เก่า | ปัจจุบัน |
|---|---|
grass | short_grass |
grass_path | dirt_path |
scute | turtle_scute |
sign | oak_sign และพวกพ้อง |
grass เป็นตัวที่สร้างปัญหา เพราะ grass_block ยังคงมีอยู่และเป็นคนละอย่างกัน คำสั่งเก่าที่ใช้ grass สำหรับพืชตอนนี้จะเล็งเป้ายิงไปที่ไม่มีอะไรเลยอย่างเงียบๆ
ID ของเอนทิตี
ส่วนใหญ่คาดเดาได้ แต่ก็มีข้อยกเว้น: minecraft:snow_golem ไม่ใช่ snowman, minecraft:mooshroom ไม่ใช่ mushroom_cow, และกระสุนทุกชนิดเป็นเอนทิตีของตัวเอง — minecraft:arrow, minecraft:spectral_arrow, minecraft:trident
เอนทิตีที่เป็นบล็อกเอนทิตีทางเทคนิค — หีบ, ฮอปเปอร์, ป้าย — จะ ไม่ ปรากฏในรายการเอนทิตีและไม่สามารถ /summon ได้ พวกมันถูกวางเป็นบล็อกและแก้ไขด้วย /data
แท็กดีกว่ารายการ
#minecraft:planks #minecraft:logs #minecraft:wool
#minecraft:doors #minecraft:beds #minecraft:swords
ไม่ว่าคำสั่งหรือ JSON จะยอมรับแท็กใด การใช้แท็กจะช่วยให้รอดจากการที่ Mojang เพิ่มชนิดไม้ใหม่ๆ การเขียน ID ของไม้กระดานทั้งแปดชนิดแบบตายตัวนั้นไม่เป็นเช่นนั้น
ค้นหา ID ของบล็อก, ไอเทม และเอนทิตีทุกชนิด พร้อมสถานะบล็อกและแท็กที่แต่ละชนิดเป็นสมาชิกได้ที่ Block, Item & Entity ID Browser