Skip to content

0.2.23. Первый релиз

Choose a tag to compare

@crazykivi crazykivi released this 21 Apr 08:58

Основные изменения

  1. Маршрут /restart теперь корректно работает с параметром core:

    • Добавлена поддержка сохранения параметра core (например, forge) при перезапуске сервера.
    • Если параметры не переданы явно, они берутся из состояния предыдущего запуска.
  2. Автоматическое использование последних параметров:

    • Теперь маршрут /restart автоматически использует последние запущенные параметры (type, version, core), если они не указаны.
  3. Маршруты /start и /stop модифицированы:

    • Логика запуска и остановки сервера вынесена в отдельные функции (startServer и stopServer).
    • Параметры сервера (type, version, core) теперь сохраняются в памяти после запуска.

Улучшения

  • Устранено дублирование кода:

    • Логика запуска и остановки сервера теперь переиспользуется в маршрутах /start, /stop и /restart.
  • Улучшена читаемость кода:

    • Маршруты стали компактнее и проще для понимания благодаря вынесению логики в отдельные функции.
  • Исправлены ошибки:

    • Устранена проблема с переназначением переменных в маршруте /restart.

Пример использования

Запуск сервера

Пример запроса (GET):

curl "http://192.168.20.184:3001/start?type=vanilla&version=1.20.1" \
  -H "Authorization: 123"

Логика работы:

  • Проверяется наличие необходимой версии Java.
  • Скачивается и устанавливается Java, если она отсутствует (при первом запуске контейнера всегда происходит скачивание Java).
  • Скачивается JAR-файл сервера Minecraft указанной версии.
  • Сервер запускается с указанными параметрами памяти.

Остановка сервера

Пример запроса (GET):

curl "http://192.168.20.184:3001/stop" \
  -H "Authorization: 123"

Логика работы:

  • Функция stopMinecraftServer отправляет команду stop в консоль сервера и дожидается завершения процесса.

Рестарт сервера

Пример запроса (GET):

curl "http://192.168.20.184:3001/restart?type=vanilla&version=1.20.1" \
  -H "Authorization: 123"

Логика работы:

  • Выполняется шаг "Остановка сервера".
  • Выполняется шаг "Запуск сервера".
  • Примечание: В текущей версии необходимо передавать параметры (type и version) при рестарте. В будущем это будет исправлено.

Сохранение мира

Пример запроса:

curl "http://192.168.20.184:3001/start?type=vanilla&version=1.20.1" \
  -H "Authorization: 123"

Логика работы:

  • На сервере выполнится команда "save-all", которая сохранит мир

Получение информации о сервере

Пример запроса (GET):

curl "http://192.168.20.184:3001/status" \
  -H "Authorization: 123"

Логика работы:

  • Выполняется функция getMemoryUsage для получения данных об использовании оперативной памяти.
  • Выполняется функция getPlayerCount для получения списка игроков на сервере (пока не работает, используется заглушка).

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

Добавил возможность отправить любую команду на маршрут /command
Пример запроса (POST):

curl -X POST http://192.168.20.184:3001/command \
  -H "Authorization: 123" \
  -H "Content-Type: application/json" \
  -d '{"command": "gamemode survival superassa"}'

!Поле command (обязательное): строка, содержащая команду, которую нужно выполнить на сервере.!
Пример: "gamemode survival superassa", "time set day", "say Hello World!".

Запуск проекта

Для запуска проекта требуется:

  • Доступ к интернету для скачивания Java и серверных файлов.
  • Docker (версии 18.06.0 или выше) и Docker Compose (версии 1.27.0 или выше).

Запуск

  • Склонируйте репозиторий:
git clone https://github.com/crazykivi/minecraft-backend.git
cd minecraft-backend
  • Запустите проект с помощью Docker Compose
docker-compose up -d

Планы:

  • Добавление Vanilla.
  • Добавление автовыбора Java для сервера.
  • Добавление сборки проекта через Docker.
  • Добавление Forge.
  • Добавление системы настройки логирования.
  • Добавление аутентификации к маршрутам.
  • Добавление маршрута для отправки команд серверу
  • Добавление Fabric.
  • Добавление Paper, Spigot.
  • Добавление снапшот и не стабильных версий (a, b и более старых, по возможности).
  • Добавление Purpur, Folia.
  • Добавление Quilt.
  • Добавление Frontend для управления сервером (React).