MCTOOLBOX
MC ToolboxMC TOOLBOX
Протокол сервера Java Edition

Проводник API управления сервером Minecraft

Просматривайте стандартные методы JSON-RPC, создавайте позиционные параметры, проверяйте схемы ответов и готовьте безопасное соединение WebSocket, не раскрывая реальный секрет сервера.

68
Методы
17
Уведомления
15
Схемы
3.0
Протокол в 26.2
Вызываемый методТолько чтение1.21.9+
minecraft:server/status

Прочитать состояние запуска, игроков онлайн и запущенную версию Minecraft.

Параметры

Этот метод не принимает параметров.

Результат

Тип результата
Server State
Запрос JSON-RPC
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "minecraft:server/status"
}
Пример ответа
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "started": true,
    "players": [
      {
        "id": "853c80ef-3c37-49fd-aa49-938b674adae6",
        "name": "jeb_"
      }
    ],
    "version": {
      "name": "26.2",
      "protocol": 774
    }
  }
}

Построитель соединения и server.properties

Используйте фиксированный порт для инструментов и оставьте секрет пустым один раз, чтобы Minecraft сгенерировал действительное 40-символьное значение.

Примечание по безопасности: Никогда не вставляйте настоящий секрет управления на публичный веб-сайт. Привязывайтесь к localhost или частной сети, используйте брандмауэр и используйте TLS в недоверенных сетях.
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
Подключение через терминал
wscat -c wss://localhost:25585 -s minecraft-v1 -H "Authorization: Bearer YOUR_40_CHARACTER_SECRET"
Пример WebSocket для браузера
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));
});
Руководство по протоколу

Что такое протокол управления сервером Minecraft?

Протокол управления сервером - это API выделенного сервера Java Edition, представленный в версии 1.21.9. Он передает сообщения JSON-RPC 2.0 через WebSocket, поэтому панели управления и автоматизация могут работать с типизированными игроками, банами, настройками, game rules и состоянием сервера вместо анализа текста консоли.

Minecraft 26.2 использует версию протокола 3.0 и может предоставлять rpc.discover до полного запуска игрового сервера. Обнаружение - это самый безопасный способ для клиента узнать методы и уведомления, поддерживаемые именно тем сервером, к которому он подключился.

Этот проводник является справочником и построителем полезных данных, а не панелью удаленного управления. Он намеренно использует секрет-заполнитель и выполняет все редактирование локально в вашем браузере.

Оперативное руководство

Management API против RCON

RCON отправляет консольные команды и возвращает неструктурированный текст. Management API возвращает типизированный JSON и может отправлять события присоединения, выхода, сохранения, gamerule и статуса, что делает его более подходящим для панелей управления, мониторинга и ботов.

API предназначен только для Java Edition и по умолчанию отключен. Производственный клиент должен проверять обнаруженные схемы, обрабатывать стандартные объекты ошибок JSON-RPC, переподключаться с экспоненциальной задержкой и рассматривать операции stop, clear, set, ban, kick и operator как привилегированные действия.

Порт 0 просит Minecraft выбрать случайный порт; он не отключает службу. TLS по умолчанию включен, и клиентам браузера также требуется разрешенный Origin плюс подпротокол WebSocket minecraft-v1.

Часто задаваемые вопросы

Может ли эта страница подключиться к моему действующему серверу Minecraft?

Нет. Он создает примеры локально и никогда не запрашивает ваш настоящий секрет. Используйте сгенерированный фрагмент в доверенном локальном инструменте или используйте поддерживаемую клиентскую библиотеку.

Почему параметры отображаются как массив JSON?

Методы API Minecraft используют позиционные параметры JSON-RPC. Даже метод с одним логическим аргументом отправляет это значение внутри массива params.

Работает ли протокол на Bedrock Edition?

Нет. Протокол управления сервером Minecraft в настоящее время является функцией выделенного сервера Java Edition.

Следует ли мне жестко кодировать список методов в панели сервера?

Используйте rpc.discover во время выполнения, когда это возможно. Протокол уже изменился в версиях 1.21.9, 1.21.11 и 26.2.