Skip to content

SellingVika7777/etr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

ETR Addon для Garry's Mod

Аддон подключает ваш GMod-сервер к ETR (Eblan Trouble Register) — общему реестру блокировок: https://sellingvika.party/etr.


Как это работает

  1. При заходе игрока сервер запрашивает у ETR статус по Steam ID. Если игрок в реестре ETR — подключение отклоняется, игрок видит сообщение о блокировке. Результат проверки кэшируется (по умолчанию на 1 час): при повторном заходе того же игрока API не вызывается, берётся сохранённый результат. Раз в час кэш по игроку сбрасывается.
  2. Сервер регистрируется в ETR по API-ключу (имя и IP). Так ключ привязывается к серверу.
  3. Баны с вашего сервера можно отправлять в ETR: при бане через FAdmin/ULX/движок аддон отправляет голос «за» по этому Steam ID. Командой etr_pushbans можно разом отправить весь бан-лист (feed).

Специальные права на ключе (например list) не нужны — используются только проверка статуса, регистрация сервера, голос и feed.


Что нужно сделать

1. Установить аддон

Скопируйте папку аддона в каталог аддонов GMod, например:

garrysmod/addons/etr_addon/

Структура внутри: lua/autorun/server/sv_etr.lua и остальные файлы.

2. Получить API-ключ

  • Зайдите на https://sellingvika.party/etr.
  • Войдите или зарегистрируйтесь.
  • Создайте API-ключ в личном кабинете (раздел для ключей/настроек).

3. Прописать ключ на сервере

В server.cfg (или в конфиге, который выполняется при старте сервера) добавьте:

etr_apikey "ваш_ключ_из_сайта"

После перезапуска карты или сервера аддон подхватит ключ, зарегистрирует сервер в ETR и начнёт проверять подключающихся игроков.

4. (По желанию) Отправить текущие баны в ETR

В консоли сервера (или по RCON), с правами супер-админа:

etr_pushbans

Будут собраны баны из FAdmin или ULib (если стоят) и отправлены в ETR пачкой (feed). Один Steam ID можно отправить так:

etr_pushbans STEAM_0:0:12345678

Дальше при новых банах через поддерживаемые админки аддон сам будет отправлять голос «за» в ETR (если ключ указан).


Настройки (ConVars)

Переменная По умолчанию Описание
etr_apikey "" API-ключ ETR. Обязательно для работы.
etr_enabled 1 Включить проверку при подключении: 1 — да, 0 — выключено.
etr_api_base https://sellingvika.party/etr/v3 Базовый URL ETR API v3. Менять только если у вас свой бэкенд.
etr_debug 0 1 — писать отладочные сообщения в консоль сервера.
etr_cache_ttl 3600 Сколько секунд хранить результат проверки по игроку (60–86400). По умолчанию 1 час — одного захода хватает, повторно не дергаем API.
etr_fail_open 1 Если API недоступен: 1 — впускать игроков, 0 — нет.
etr_periodic_interval 600 Раз в сколько секунд перепроверять уже зашедших игроков. 0 — не перепроверять.
etr_strict_first 0 При первом заходе, пока нет кэша: 1 — не пускать с сообщением «подключитесь через 15 сек», 0 — пускать и проверять в фоне.

Пример блока в конфиге:

etr_apikey "ваш_ключ"
etr_enabled 1
etr_fail_open 1
etr_periodic_interval 600

Команды

  • etr_pushbans — отправить в ETR все баны из FAdmin/ULib или из хука ETR_GetBansToPush (пачкой через feed). Только супер-админ.
  • etr_pushbans <steamid> — отправить один Steam ID голосом «за» (vote). Пример: etr_pushbans STEAM_0:0:12345678.

Интеграция с админками и своей базой банов

Автоматическая отправка при бане

Поддерживаются:

  • FAdmin — при бане через FAdmin аддон сам отправляет голос в ETR.
  • ULX/ULib — при бане через ULib/ULX.
  • Любая админка через движок — срабатывает общий событие server_addban, аддон отправляет голос.

Своя админка или своя база банов

Когда вы баните игрока в своей системе, вызовите на сервере:

hook.Run("ETR_ReportBan", steamID64, reason, duration_minutes)

или глобальную функцию:

ETR_SubmitBan(steamID64, reason, duration_minutes)

Так вы отправите один голос «за» в ETR. reason и duration_minutes опциональны.

Чтобы по команде etr_pushbans подставлялся ваш список банов, добавьте в свой аддон хук и верните таблицу:

hook.Add("ETR_GetBansToPush", "MyAddon", function()
    return {
        { steamid64 = "76561198...", reason = "Cheat" },
        { steamid = "STEAM_0:0:123", reason = "Ban from DB" },
    }
end)

Подойдёт и просто массив Steam ID (строк), и таблицы с полями steamid64 или steamid, reason.


Кратко: что делает аддон

  • При подключении проверяет игрока через ETR API (status). В реестре — кик с сообщением о блокировке ETR.
  • Регистрирует сервер в ETR (имя, IP, app_id 4020).
  • При бане на сервере (FAdmin, ULib, server_addban или ваш вызов) отправляет голос «за» или feed в ETR.
  • Команда etr_pushbans — отправить текущий бан-лист в ETR пачкой (feed).

Документация API: ETR API (Вики).

etr

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages