ไอดีบล็อก ไอเทม และเอนทิตี: เนมสเปซ บล็อกสเตต และไอดีที่แตกต่าง
ไอดีไม่ใช่ชื่อที่เรียกกันเสมอไป และไอดีบล็อกก็ไม่เหมือนกับไอดีไอเทม กฎการตั้งชื่อ การเปลี่ยนชื่อที่ทำให้คำสั่งเก่าใช้ไม่ได้ และสเตตอยู่ตรงไหน
ทุกคำสั่งที่ล้มเหลวด้วยข้อความ "Unknown item" หรือ "Unknown block" ล้วนเป็นปัญหาเรื่องไอดี และกฎก็ละเอียดอ่อนกว่าแค่ "ตัวพิมพ์เล็กคั่นด้วยขีดล่าง"
เนมสเปซไม่ใช่ตัวเลือกเสริมในข้อมูล
minecraft:diamond_sword
my_pack:custom_sword
คำสั่งอนุญาตให้ละ minecraft: ได้ — /give @s diamond_sword ใช้ได้ — และไฟล์ JSON ก็เช่นกัน diamond_sword เปล่า ๆ ใน loot table หรือ recipe จะถูกตีความเป็น minecraft:diamond_sword แต่ก็ควรเขียนเนมสเปซกำกับทุกที่อยู่ดี เพราะจะทำให้ไอดีของคุณไม่กำกวมและเห็น typo ในเนมสเปซได้ง่าย
ไอดีบล็อกกับไอดีไอเทมเป็นคนละเรื่อง
บางบล็อกไม่มีไอเทม บางไอเทมวางบล็อกที่ต่างออกไป:
| ไอเทม | บล็อกที่วาง |
|---|---|
minecraft:wheat_seeds | minecraft:wheat |
minecraft:redstone | minecraft:redstone_wire |
minecraft:string | minecraft:tripwire |
minecraft:flower_pot | minecraft:flower_pot แต่แบบที่อยู่ในกระถางเป็นบล็อกแยกต่างหาก |
| — | minecraft:water, minecraft:fire ไม่มีไอเทม (air มีเป็นไอเทมเฉพาะในรูปสแต็กเปล่า) |
/setblock รับไอดีบล็อก ส่วน /give รับไอดีไอเทม การใช้ผิดตัวคือ สาเหตุที่พบบ่อยที่สุดของ "ไอดีนั้นไม่มีอยู่" ทั้งที่ของมีอยู่ชัด ๆ
บล็อกสเตตอยู่ในวงเล็บเหลี่ยม
/setblock ~ ~ ~ oak_stairs[facing=east,half=top,waterlogged=true]
สเตตเป็นคุณสมบัติของบล็อก ไม่ใช่ของไอเทม — การหมุนของไอเทมบันไดเปล่า ๆ ถูกตัดสินตอนวาง ข้อยกเว้นคือไอเทมที่พกคอมโพเนนต์ block_state ซึ่งคุณสมบัติจะถูกใส่หลังวาง คุณสมบัติที่ไม่ระบุจะใช้ค่าเริ่มต้น
waterlogged มักทำให้คนพลาด: มันมีอยู่บนบันได แผ่นพื้น รั้ว และอีกสารพัด และการตั้งบล็อกโดยไม่ใส่ค่านี้จะลบน้ำที่เคยอยู่ตรงนั้นออก
การเปลี่ยนชื่อที่ทำให้คำสั่งเก่าใช้ไม่ได้
มีไอดีจำนวนหนึ่งที่เปลี่ยนไป และไอดีเก่าก็ไม่เป็นที่รู้จักอีกต่อไป:
| เก่า | ปัจจุบัน |
|---|---|
grass | short_grass |
grass_path | dirt_path |
scute | turtle_scute |
sign | oak_sign และพวกพ้อง |
grass คือตัวที่เจ็บปวด เพราะ grass_block ยังมีอยู่และเป็นคนละสิ่งกัน คำสั่งเก่าที่ใช้ grass สำหรับพืชนั้นตอนนี้ล้มเหลวว่าเป็นบล็อกที่ไม่รู้จัก
ไอดีเอนทิตี
ส่วนใหญ่คาดเดาได้ แต่มีข้อยกเว้น: 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 เพิ่มชนิดไม้ใหม่ ๆ การฮาร์ดโค้ดไอดีไม้ทั้งสิบสามชนิดไม่ทน
ค้นหาไอดีบล็อก ไอเทม และเอนทิตีทุกตัว พร้อมบล็อกสเตตและแท็กที่แต่ละตัวสังกัด ได้ที่ Block, Item & Entity ID Browser