Guides
Sửa lỗiImportOutputDiff

Tại sao lệnh Minecraft của bạn không hoạt động

9 phút đọc

Hầu hết lệnh hỏng rơi vào bốn nhóm: sai Minecraft Version, selector không match gì, JSON/NBT sai định dạng, hoặc dùng dữ liệu chỉ có ở Java trong Bedrock. NBTForge giúp bằng cách import những lệnh được hỗ trợ vào các trường có cấu trúc, hiển thị warning và giữ output ngay trước mắt trong lúc bạn chỉnh.

Bắt đầu bằng cách xác định nhóm lỗi, rồi đi qua checklist trước khi chạy lại lệnh.
Dán lệnh lỗi vào Import trước, rồi xác nhận Edition và Version của thế giới đích.
Giữ output mở trong lúc sửa và dùng Diff sau từng thay đổi để biết chính xác phần nào đã đổi.

Kết quả guide

Một quy trình debug lặp lại được, giúp tách lỗi cú pháp, target, Version và Edition trước khi bạn paste lại lệnh.

Mở workflow liên quanImport, Output, DiffGỡ lỗi các lệnh bị hỏng

Lộ trình khuyến nghị

  1. Dán lệnh vào thanh nhập và kiểm tra xem NBTForge có định tuyến được sang module trực quan hay không.
  2. Đặt Edition và Version để khớp với thế giới sẽ chạy lệnh.
  3. Đọc cảnh báo output trước khi thay đổi trường, đặc biệt khi di chuyển giữa Java và Bedrock.
  4. Test target selector riêng bằng một lệnh đơn giản trước khi đổ lỗi cho payload NBT.
  5. Sử dụng Diff sau mỗi lần sửa lỗi để bạn biết phần nào của lệnh thực sự đã thay đổi.

Bắt đầu với phiên bản không khớp

Một lệnh copy từ thế giới Java hiện tại có thể fail trên Java 1.20.4 trở xuống vì item components chưa tồn tại ở đó. Chiều ngược lại cũng hay gặp: item NBT cũ có thể chạy trong world cũ nhưng fail hoặc đổi hành vi sau thay đổi item components từ 1.20.5.

Hãy đặt Version trong NBTForge trước, rồi tạo lại output. Nếu lệnh đổi cấu trúc sau khi chuyển version, coi đó là khác biệt cú pháp thật, không phải chỉ là format lại cho đẹp.

  • Sử dụng Java 1.20.4 hoặc cũ hơn cho các ví dụ về vật phẩm NBT cũ.
  • Sử dụng Java 1.20.5+ cho output vật phẩm kiểu thành phần.
  • Chỉ sử dụng Bedrock Stable khi họ lệnh được hỗ trợ bởi cú pháp Bedrock.

Tách các lỗi bộ chọn khỏi các lỗi tải trọng

Một lệnh đúng cú pháp vẫn có thể fail nếu selector không match thực thể nào hoặc match nhầm người chơi. Hãy test selector bằng một lệnh nhỏ như /title, /tellraw hoặc /effect trước khi debug payload /summon hay /give dài.

Khi selector có distance, score, tag, team hoặc bộ lọc NBT, hãy bỏ từng bộ lọc cho đến khi lệnh match lại. Sau đó thêm từng điều kiện nhỏ nhất có thể.

Kiểm tra báo giá và dữ liệu lồng nhau

Lệnh dài thường hỏng quanh JSON text component lồng nhau, dấu ngoặc kép đã escape, custom_name, lore hoặc NBT viết tay. Nếu lệnh có text người chơi nhìn thấy, hãy dựng lại phần text trong editor trực quan thay vì sửa từng dấu quote bằng tay.

NBTForge hữu ích nhất sau bước Import vì nó biến một chuỗi lớn thành các trường nhỏ có tên rõ ràng. Chỉnh một trường, kiểm tra output, rồi mới đi tiếp; đừng sửa nhiều lớp lồng nhau cùng lúc.

  • Tên và lore thường không thành công vì văn bản JSON có ký tự thoát kép.
  • Sách có thể bị lỗi khi văn bản trang chứa dấu ngoặc kép không thoát.
  • Dữ liệu tùy chỉnh có thể không thành công khi dấu ngoặc nhọn hoặc dấu ngoặc nhọn không đóng theo đúng thứ tự.

Kiểm tra artifact sau khi copy

Mục tiêu là tạo ra artifact mà người chơi hoặc map maker thật sự sẽ chạy: một lệnh đã copy, một Project có thứ tự, hoặc tài nguyên datapack. Bước review cuối phải nhìn vào artifact đó, không chỉ nhìn trạng thái generator còn đang chỉnh được.

Nếu workflow nhạy theo version, ghi version đích cạnh lệnh. Nếu nó dùng selector, scoreboard, boss bar, Tags, loot table hoặc thứ tự Project, hãy test các dependency đó trong một world sạch trước khi publish setup.

Để xem ví dụ có thể debug thực tế, so sánh Preset lệnh zombie cưỡi nhện, Preset lệnh /summon spider jockeypreset loot của boss lửa Blaze Emperor.

  • Copy từ Output cho một lệnh đơn, và từ Project cho gói nhiều lệnh có thứ tự.
  • Giữ riêng các biến thể Java, Bedrock và snapshot.
  • Trước tiên, hãy kiểm tra các bộ chọn phá hủy với output vô hại.
  • Cập nhật các preset có liên quan khi hướng dẫn trở thành quy trình chuẩn.

Guide và preset liên quan

FAQ

Tại sao lệnh có tác dụng ở thế giới này mà không phải ở thế giới khác?

Nguyên nhân phổ biến nhất là sai Minecraft Version hoặc sai Edition. Cú pháp item Java, tính năng snapshot và hỗ trợ lệnh Bedrock có thể khác nhau ngay cả khi lệnh nhìn gần giống nhau.

Tôi có nên sửa một lệnh dài bằng tay không?

Chỉ nên sửa tay với chỉnh sửa nhỏ. Với lệnh dài, /summon, text component hoặc datapack, hãy Import lệnh rồi chỉnh trong các trường trực quan để quote escaping và dữ liệu lồng nhau dễ review hơn.

Khi nào hướng dẫn này sẽ trở thành gói Project?

Dùng Project khi workflow cần nhiều lệnh, có thứ tự setup/dọn dẹp hoặc cần chỉnh lại sau khi test. Lệnh dùng một lần có thể ở Output.