Скачать Server Info API — Minecraft Моды — MetaMods

Server Info API

Активный

Установок

0

Последнее обновление

9 месяцев назад

Версии

1.21.1 — 1.21.5
Сервер
Fabric
Библиотеки
Управление
Утилиты

Server Info API - Расширенный HTTP API для вашего Minecraft-сервера

Добавьте на ваш Minecraft-сервер полнофункциональный HTTP API для доступа к статистике и данным сервера в реальном времени.

🌟 Что делает этот мод?

Создавайте собственные инструменты для мониторинга и управления сервером! С Server Info API вы сможете:

  • Отображать количество игроков онлайн на сайте
  • Создавать Дискорд-бота для автоматизации
  • Собирать статистику производительности
  • Разрабатывать кастомные приложения для управления сервером

🔧 Быстрый старт

API автоматически запускается на порту 8080. Для изменения порта отредактируйте настройку apiPort в файле config/Server Info API/settings.json.

📡 Доступные эндпоинты

Статус сервера (/status)

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

{
  "disk": {
    "totalGB": 1606,
    "freeGB": 343,
    "usedMB": 25
  },
  "players": {
    "online": 0,
    "max": 20
  },
  "cpu": {
    "usagePercent": 9.865470852017937
  },
  "ram": {
    "totalMB": 63033,
    "usedMB": 31469
  }
}

Список игроков (/players)

Информация обо всех игроках сервера: общее количество и текущие онлайн-игроки.

{
  "totalPlayers": 1,
  "onlinePlayers": []
}

Информация об игроке (/player/:criteria)

Детальные сведения об отдельных игроках по имени или UUID.

{
  "name": "PLAYER_NAME",
  "online": true,
  "uuid": "PLAYER_UUID",
  "info": {
    "currentChunkPos": {
      "z": 1,
      "x": 0
    },
    "currentPos": {
      "z": 23.423937096484163,
      "x": 7.907748838070694,
      "y": 100.12983446114534
    },
    "dimension": "minecraft:the_nether"
  }
}

🛠️ Для разработчиков модов

Создание собственных маршрутов

Разрабатывайте расширения для ваших модов! Реализуйте интерфейс APIRoute и настройте путь с помощью аннотации @RouteSettings.

import xyz.yoinky3000.server_info_api.annotations.RouteSettings;
import xyz.yoinky3000.server_info_api.api.APIRequest;
import xyz.yoinky3000.server_info_api.api.APIResponse;
import xyz.yoinky3000.server_info_api.api.APIRoute;
import net.minecraft.server.MinecraftServer;

// Простой маршрут без доступа к серверу
@RouteSettings(path = "/my-simple-test-route") // По умолчанию requireMinecraftServer = false
public class MySimpleTestRoute implements APIRoute {
    @Override
    public APIResponse handle(APIRequest apiRequest) {
        return new APIResponse(APIResponse.HttpStatus.OK, APIResponse.MimeType.TEXT_PLAIN, "Привет из моего маршрута!");
    }
}

// Маршрут с доступом к серверу
@RouteSettings(path = "/my-server-data-route", requireMinecraftServer = true)
public class MyServerDataRoute implements APIRoute {
    @Override
    public APIResponse handle(APIRequest request, MinecraftServer server) {
        int onlinePlayers = server.getCurrentPlayerCount();
        return new APIResponse(APIResponse.HttpStatus.OK, APIResponse.MimeType.TEXT_PLAIN,
            "Игроков сейчас онлайн: " + onlinePlayers);
    }
}

Настройка параметров маршрута

  • path: Путь API эндпоинта (например, /my-custom-data)
  • requireMinecraftServer: Если true, маршрут активируется только после полной загрузки сервера

Регистрация маршрутов

import xyz.yoinky3000.server_info_api.ServerInfoAPI;
import net.fabricmc.api.ModInitializer;

public class CustomMod implements ModInitializer {
    @Override
    public void onInitialize() {
        // Регистрация маршрута с помощью аннотации 
        ServerInfoAPI.registerRoute(new MyServerDataRoute());

        System.out.println("Пользовательские API маршруты зарегистрированы!");
    }
}

Доступные методы регистрации:

  • registerRoute(APIRoute route) - регистрация с аннотацией, без перезаписи
  • registerRoute(String path, APIRoute route) - явное указание пути
  • registerRoute(String path, APIRoute route, boolean requireMinecraftServer, boolean override) - полный контроль

Динамические параметры

Создавайте маршруты с переменными сегментами:

@RouteSettings(path = "/my-data/:item_id")
public class ItemDataRoute implements APIRoute {
    @Override
    public APIResponse handle(APIRequest request, MinecraftServer server) {
        String itemId = request.routeParams().get("item_id");
        if (itemId != null) {
            return new APIResponse(APIResponse.HttpStatus.OK, APIResponse.MimeType.TEXT_PLAIN, "Запрошен ID объекта: " + itemId);
        } else {
            return new APIResponse(APIResponse.HttpStatus.BAD_REQUEST, APIResponse.MimeType.TEXT_PLAIN, "ID объекта не указан.");
        }
    }
}
Участники проекта
Yoinky3000

Yoinky3000

Разработчик

Создан: 31 мая 2025

ID: 102646