0.2.23. Первый релиз
Основные изменения
-
Маршрут
/restartтеперь корректно работает с параметромcore:- Добавлена поддержка сохранения параметра
core(например,forge) при перезапуске сервера. - Если параметры не переданы явно, они берутся из состояния предыдущего запуска.
- Добавлена поддержка сохранения параметра
-
Автоматическое использование последних параметров:
- Теперь маршрут
/restartавтоматически использует последние запущенные параметры (type,version,core), если они не указаны.
- Теперь маршрут
-
Маршруты
/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).