MCTOOLBOX
MC ToolboxMC TOOLBOX
Giao thức máy chủ Java Edition

Trình khám phá API quản lý máy chủ Minecraft

Duyệt các phương thức JSON-RPC vanilla, xây dựng các tham số vị trí, kiểm tra lược đồ phản hồi và chuẩn bị kết nối WebSocket an toàn mà không tiết lộ bí mật máy chủ thực.

68
Phương thức
17
Thông báo
15
Lược đồ
3.0
Giao thức trong 26.2
Phương thức có thể gọiChỉ đọc1.21.9+
minecraft:server/status

Đọc trạng thái khởi động, người chơi trực tuyến và phiên bản Minecraft đang chạy.

Tham số

Phương thức này không có tham số.

Kết quả

Loại kết quả
Server State
Yêu cầu JSON-RPC
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "minecraft:server/status"
}
Ví dụ phản hồi
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "started": true,
    "players": [
      {
        "id": "853c80ef-3c37-49fd-aa49-938b674adae6",
        "name": "jeb_"
      }
    ],
    "version": {
      "name": "26.2",
      "protocol": 774
    }
  }
}

Trình xây dựng kết nối và server.properties

Sử dụng một cổng cố định cho các công cụ và để trống bí mật một lần để Minecraft tạo ra một giá trị 40 ký tự hợp lệ.

Lưu ý bảo mật: Không bao giờ dán bí mật quản lý thực vào một trang web công cộng. Ràng buộc với localhost hoặc mạng riêng, sử dụng tường lửa và sử dụng TLS trên các mạng không đáng tin cậy.
server.properties
management-server-enabled=true
management-server-host=localhost
management-server-port=25585
management-server-secret=
management-server-tls-enabled=true
management-server-tls-keystore=management-server.p12
management-server-allowed-origins=http://localhost:3000
Kết nối Terminal
wscat -c wss://localhost:25585 -s minecraft-v1 -H "Authorization: Bearer YOUR_40_CHARACTER_SECRET"
Ví dụ WebSocket trình duyệt
const socket = new WebSocket('wss://localhost:25585', [
  'minecraft-v1',
  'YOUR_40_CHARACTER_SECRET'
]);

socket.addEventListener('open', () => {
  socket.send("{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"minecraft:server/status\"}");
});

socket.addEventListener('message', ({ data }) => {
  console.log(JSON.parse(data));
});
Hướng dẫn giao thức

Giao thức quản lý máy chủ Minecraft là gì?

Giao thức quản lý máy chủ là một API máy chủ chuyên dụng Java Edition được giới thiệu trong 1.21.9. Nó truyền các tin nhắn JSON-RPC 2.0 qua WebSocket, vì vậy các bảng điều khiển và tự động hóa có thể hoạt động với người chơi, lệnh cấm, cài đặt, game rules và trạng thái máy chủ đã được định kiểu thay vì phân tích văn bản console.

Minecraft 26.2 sử dụng giao thức phiên bản 3.0 và có thể hiển thị rpc.discover trước khi máy chủ game khởi động hoàn toàn. Khám phá là cách an toàn nhất để máy khách tìm hiểu các phương thức và thông báo được hỗ trợ bởi máy chủ chính xác mà nó đã kết nối.

Trình khám phá này là một công cụ tham chiếu và xây dựng tải trọng, không phải là bảng điều khiển từ xa. Nó cố ý sử dụng một bí mật giữ chỗ và thực hiện tất cả các chỉnh sửa cục bộ trong trình duyệt của bạn.

Hướng dẫn vận hành

API quản lý so với RCON

RCON gửi các lệnh console và trả về văn bản không có cấu trúc. API quản lý trả về JSON đã được định kiểu và có thể đẩy các sự kiện tham gia, rời đi, lưu, gamerule và trạng thái, điều này làm cho nó phù hợp hơn với các bảng điều khiển, giám sát và bot.

API chỉ dành cho Java Edition và bị tắt theo mặc định. Một máy khách sản xuất nên xác thực các lược đồ đã khám phá, xử lý các đối tượng lỗi JSON-RPC tiêu chuẩn, kết nối lại với backoff và coi các thao tác stop, clear, set, ban, kick và operator writes là các hành động đặc quyền.

Cổng 0 yêu cầu Minecraft chọn một cổng ngẫu nhiên; nó không vô hiệu hóa dịch vụ. TLS mặc định được bật và các máy khách trình duyệt cũng cần một Origin được phép cộng với subprotocol WebSocket minecraft-v1.

Các câu hỏi thường gặp

Trang này có thể kết nối với máy chủ Minecraft trực tiếp của tôi không?

Không. Nó xây dựng các ví dụ cục bộ và không bao giờ yêu cầu bí mật thực của bạn. Sử dụng đoạn mã được tạo trong một công cụ cục bộ đáng tin cậy hoặc sử dụng một thư viện máy khách được duy trì.

Tại sao các tham số được hiển thị dưới dạng một mảng JSON?

Các phương thức API Minecraft sử dụng các tham số JSON-RPC vị trí. Ngay cả một phương thức có một đối số logic cũng gửi giá trị đó bên trong mảng params.

Giao thức có hoạt động trên Bedrock Edition không?

Không. Giao thức quản lý máy chủ Minecraft hiện là một tính năng của máy chủ chuyên dụng Java Edition.

Tôi có nên mã hóa cứng danh sách phương thức trong bảng điều khiển máy chủ không?

Sử dụng rpc.discover trong thời gian chạy khi có thể. Giao thức đã thay đổi qua các phiên bản 1.21.9, 1.21.11 và 26.2.