🎛️Feature Control

Канал: liteapi:feature-control

Общий протокол (формат пакетов, коды ошибок, rate limiting): api


checkFeatures

Rate limit: 1 запрос в 10 секунд на игрока.

Запрос

{
  "id":     "ffffffff-ffff-ffff-ffff-ffffffffffff",
  "method": "checkFeatures",
  "payload": {
    "client":   "my-mod-id",
    "features": ["xray", "fly", "speed", "zoom", "fullbright"]
  }
}
Поле
Тип
Обязательно
Описание

client

string

да

Стабильный идентификатор вашего мода, например "myclient". Используется для поиска персональных блокировок.

features

string[]

да

Список активных функций мода, которые нужно проверить.

Если одно из этих полей отсутствует — сервер ответит BAD_REQUEST.

Ответ (успех)

Сервер возвращает только те функции из вашего списка, которые заблокированы. Если ничего не заблокировано — blocklist будет пустым массивом [].

Важно: заблокированная функция должна быть полностью скрыта от игрока — убрана из меню, настроек, подсказок и любых других UI-элементов. Недостаточно просто запретить её включение. Игрок не должен видеть даже упоминания функции, пока она в блок-листе.

Ответы при ошибках


Как работает блокировка

Функция считается заблокированной, если она находится:

  • в глобальном блок-листе — применяется ко всем клиентам без исключения, или

  • в персональном блок-листе для вашего client — применяется только к модам с этим идентификатором.


Рекомендации

  • Когда вызывать: сразу после подключения к серверу (ClientPlayConnectionEvents.JOIN), а также при включении новой функции, если вы хотите проверить её до активации.

  • client — фиксированная строка, не UUID и не ник игрока. По ней сервер хранит персональные блокировки в базе данных, поэтому она не должна меняться между версиями мода.

  • Лимит запросов — 1 в 10 секунд. Не опрашивайте сервер в цикле.

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

Это было полезно?