ตัวสร้างคำสั่ง Data

อ่าน แก้ไข รวม หรือลบข้อมูล NBT ของบล็อก เอนทิตี และ storage — ใช้ปรับของในหีบ เลือดม็อบ หรือแท็กภายในโดยตรง (เฉพาะ Java)

ต้องเจาะจงตัวเดียว เช่น @e[type=zombie,limit=1]

เว้นว่างไว้เพื่ออ่านข้อมูลทั้งหมด

ใช้ได้เมื่อระบุ NBT path ด้วย เหมาะกับการเก็บทศนิยมลง scoreboard

NBT คืออะไร

ทุกบล็อกและทุกเอนทิตีในเกมมี "ใบข้อมูล" ซ่อนอยู่ เรียกว่า NBT เก็บของอย่างเลือดปัจจุบัน ของในหีบ ชื่อที่ตั้งไว้ หรือแท็กภายในอื่นๆ คำสั่ง /data คือประตูเข้าไปอ่านและแก้ใบข้อมูลนั้นโดยตรง

  1. ลอง get โดยไม่ใส่ path ก่อน เพื่อดูว่าเป้าหมายมีแท็กอะไรบ้าง
  2. คัดลอกชื่อแท็กที่เห็นมาใส่ในช่อง NBT path เช่น Health หรือ Inventory[0].id
  3. ใช้ modify เพื่อแก้ทีละแท็ก หรือ merge เพื่อยัดหลายแท็กพร้อมกัน

ข้อควรระวัง: /data ทำงานกับเอนทิตีได้ครั้งละ หนึ่งตัว เท่านั้น ถ้าใช้ @e หรือ @a ต้องใส่ limit=1 ด้วย ถ้าอยากทำกับหลายตัวพร้อมกัน ให้ครอบด้วย คำสั่ง Execute แบบ execute as @e[...] run data ...

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

/data มีเฉพาะ Java Edition — Bedrock ไม่มีคำสั่งจัดการ NBT ส่วน storage มีตั้งแต่ Java 1.15 จึงเปิดให้เฉพาะโปรไฟล์ Java 1.21.x

ตัวอย่างการใช้งาน

ตัวอย่างด้านล่างสร้างจากตัวสร้างคำสั่งตัวเดียวกับที่อยู่ด้านบนหน้านี้ คำสั่งและคำอธิบายจึงตรงกับที่ฟอร์มจะให้เสมอ กรอกค่าตามตัวอย่างแล้วปรับต่อได้เลย

1. อ่านข้อมูล NBT ของตัวเอง

วิธีเร็วที่สุดในการดูว่าข้อมูลของเอนทิตีมีโครงหน้าตาอย่างไร ก่อนจะเขียนคำสั่งที่ไปแก้ค่าจริง

/data get entity @s

คำสั่งนี้ทำอะไร จะแสดงข้อมูล NBT ทั้งหมดของตัวเอง (ผู้ที่รันคำสั่ง) ออกมาในแชท (ไม่เปลี่ยนแปลงอะไร).

2. อ่านเฉพาะค่าที่ต้องการ

ระบุ path เพื่อดึงเฉพาะค่าเดียว แทนที่จะได้ข้อมูลทั้งก้อนซึ่งอ่านยาก

/data get entity @s Health

คำสั่งนี้ทำอะไร จะอ่านค่าของแท็ก "Health" จากตัวเอง (ผู้ที่รันคำสั่ง) ใช้คู่กับ /execute store เพื่อเก็บลง scoreboard ได้.

3. เก็บค่าลงพื้นที่จัดเก็บของตัวเอง

พื้นที่จัดเก็บไม่ผูกกับเอนทิตีหรือบล็อกใดๆ จึงเหมาะกับเก็บค่าของระบบใน datapack

/data modify storage minecraft:mydata round set value 1

คำสั่งนี้ทำอะไร จะเขียนทับที่แท็ก "round" ของstorage "minecraft:mydata" ด้วยค่า 1.

คำสั่งนี้ต่างกันอย่างไรในแต่ละเอดิชันและเวอร์ชัน

ตารางนี้คือตัวอย่างแรกด้านบน ที่ถูกรันผ่านทุกเอดิชันและเวอร์ชันที่เครื่องมือนี้รองรับ เวอร์ชันที่ให้ผลเหมือนกันถูกรวมไว้ในแถวเดียวกัน

ทุกเวอร์ชันที่เครื่องมือนี้รองรับให้ผลลัพธ์เหมือนกัน คำสั่งที่คัดลอกไปจึงใช้ได้โดยไม่ต้องแก้ตามเวอร์ชัน

Java Edition 1.21.5 ขึ้นไป Java Edition 1.20.5 - 1.21.4 Java Edition 1.13 - 1.20.4 (NBT แบบเก่า)
/data get entity @s

ข้อควรรู้ก่อนนำไปใช้