Cùng một đoạn chữ đỏ lại hỏng trên Java và Bedrock
Một mã màu hiển thị hoàn hảo trong plugin này lại thành dấu ampersand thô trong plugin khác. Định dạng mới là nguyên nhân, không phải plugin.
Một mã § và một thẻ MiniMessage có thể mô tả cùng một màu nhưng vẫn bị cùng một máy chủ từ chối. Chữ màu trên máy chủ không chỉ có một định dạng — mà có ít nhất năm, và các plugin không thống nhất về việc chúng chấp nhận loại nào.
Năm phương ngữ
| Phương ngữ | Trông như thế nào | Tồn tại ở đâu |
|---|---|---|
| Legacy section | §cHello | Chat vanilla, plugin cũ |
| Ampersand legacy | &cHello | Tệp cấu hình, nhiều plugin |
| BungeeCord hex | &x&f&f&0&0&0&0 | Plugin proxy, một số chat |
| MiniMessage | <red>Hello</red> | Plugin Paper hiện đại |
| JSON component | {"text":"Hello","color":"red"} | Lệnh vanilla, /tellraw |
Dạng ampersand thực chất không phải mã màu cho đến khi có thứ gì đó dịch nó. Dán &c vào một plugin mong đợi MiniMessage thì người chơi sẽ đọc thấy đúng các ký tự đó.
Mã legacy hết màu
Hệ thống dấu section mang một bộ chữ cái màu cố định cùng các nút bật/tắt định dạng. Không có cách nào diễn đạt một màu tùy ý trong đó. Mã hex ra đời sau, và dạng BungeeCord mã hóa nó từng ký tự một — &x theo sau là sáu chữ số hex có tiền tố &, đó là lý do nó trông dài như vậy.
MiniMessage nhận trực tiếp #ff0000. JSON nhận cùng mã hex đó dưới dạng giá trị chuỗi.
Java và Bedrock không đồng ý với nhau
Bedrock cũng dùng dấu section, nhưng bộ màu và cách xử lý việc đặt lại định dạng của nó khác Java. Một chuỗi hiển thị đúng trên máy chủ Java có thể hiện ký tự lạ trên máy khách Bedrock, và các proxy cross-play thường dịch qua lại giữa hai bên thay vì truyền thẳng văn bản. Nếu máy chủ của bạn chấp nhận người chơi Bedrock, hãy kiểm tra kết quả trên cả hai.
Cái bẫy lồng nhau
Mã legacy có trạng thái: một mã màu đặt lại định dạng, nên §l§cBold là đỏ và đậm, nhưng §c§lBold chỉ đậm đỏ cho đến mã màu tiếp theo, mã này xóa phần đậm. MiniMessage là một cây — <red><bold>text</bold></red> đóng lại gọn gàng. Chuyển một chuỗi MiniMessage lồng nhau sang mã legacy sẽ làm mất cấu trúc, vì legacy không có thẻ đóng.
Thoát ký tự
MiniMessage coi < là cú pháp. Một người chơi tên <Steve> sẽ phá vỡ mọi plugin phân tích tên của họ như một component. Định dạng legacy cũng gặp vấn đề tương tự với &, đó là lý do nhiều plugin yêu cầu && hoặc một cờ cấu hình để thoát nó.
Viết văn bản một lần, chọn phương ngữ mà plugin của bạn thực sự phân tích, rồi sao chép chuỗi chính xác từ Server Text Studio.