- Поддерживаемые версии
- 1.7
- 1.8
- 1.9
- 1.10
- 1.11
- 1.12
- 1.13
- 1.14
- 1.15
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
- Ядра и Прокси
- Velocity
- Минимальная версия Java
- 17
d31zyDomainInfo — это профессиональный плагин для администраторов Velocity-сетей, которые используют несколько доменов, ведущих на один прокси. Плагин даёт полный контроль над тем, кто, откуда и через какой домен подключается к вашему серверу.
Мониторинг доменов
Плагин автоматически определяет виртуальный хост (домен), через который зашёл каждый игрок, и ведёт полную историю подключений. Вы всегда знаете, какой домен активен, сколько игроков на нём онлайн и какова общая статистика за любой период.
Геолокация игроков
Каждое подключение автоматически обогащается геолокацией по IP через ip-api.com. Плагин запоминает историю смены локаций — вы видите, если игрок стал подключаться из другой страны. Результаты кэшируются, чтобы не нагружать внешний API.
Статистика и история
Полная история подключений с длительностью сессий, счётчики уникальных игроков по каждому домену, статистика за произвольный период (7d, 2w, 1mo, 1y) и история пингов — всё доступно прямо из игры через команды.
Telegram Admin-панель
Встроенный Telegram-бот с полностью интерактивным inline-меню позволяет управлять мониторингом прямо из телефона. Смотрите онлайн по доменам, историю подключений, статистику и добавляйте заметки к доменам — без входа на сервер. Доступ строго по белому списку Telegram ID.
Поддержка множества баз данных
SQLite для быстрого старта, MySQL, MariaDB, PostgreSQL для продакшн-серверов и MongoDB для тех, кто предпочитает документоориентированные БД. Переключение — одна строка в конфиге.
Мультиязычность
Все сообщения вынесены в отдельные языковые файлы (lang/ru.yml, lang/en.yml). Любой текст меняется без пересборки, поддерживается полный синтаксис MiniMessage.
Производительность
Все операции с базой данных — асинхронные, с отдельным пулом потоков. Онлайн-данные хранятся в памяти (без обращения к БД на каждое событие), а геолокация кэшируется. Плагин не влияет на TPS прокси.
Особенности
Плагин автоматически определяет виртуальный хост (домен), через который зашёл каждый игрок, и ведёт полную историю подключений. Вы всегда знаете, какой домен активен, сколько игроков на нём онлайн и какова общая статистика за любой период.
Каждое подключение автоматически обогащается геолокацией по IP через ip-api.com. Плагин запоминает историю смены локаций — вы видите, если игрок стал подключаться из другой страны. Результаты кэшируются, чтобы не нагружать внешний API.
Полная история подключений с длительностью сессий, счётчики уникальных игроков по каждому домену, статистика за произвольный период (7d, 2w, 1mo, 1y) и история пингов — всё доступно прямо из игры через команды.
Встроенный Telegram-бот с полностью интерактивным inline-меню позволяет управлять мониторингом прямо из телефона. Смотрите онлайн по доменам, историю подключений, статистику и добавляйте заметки к доменам — без входа на сервер. Доступ строго по белому списку Telegram ID.
SQLite для быстрого старта, MySQL, MariaDB, PostgreSQL для продакшн-серверов и MongoDB для тех, кто предпочитает документоориентированные БД. Переключение — одна строка в конфиге.
Все сообщения вынесены в отдельные языковые файлы (lang/ru.yml, lang/en.yml). Любой текст меняется без пересборки, поддерживается полный синтаксис MiniMessage.
Все операции с базой данных — асинхронные, с отдельным пулом потоков. Онлайн-данные хранятся в памяти (без обращения к БД на каждое событие), а геолокация кэшируется. Плагин не влияет на TPS прокси.
- Определение виртуального хоста (домена) для каждого подключения через Velocity API
- Полная история подключений с длительностью сессий и фильтрацией по периоду
- Геолокация игроков по IP с кэшированием и историей смены локаций
- Telegram-бот с inline-меню — мониторинг прямо с телефона без входа на сервер
- Заметки к доменам прямо из Telegram-панели
- Поддержка 5 баз данных: SQLite, MySQL, MariaDB, PostgreSQL, MongoDB
- Асинхронные операции с БД — нулевое влияние на производительность прокси
- Онлайн-данные в памяти — никаких запросов к БД на каждое событие
- Tab-complete для всех подкоманд и аргументов
- Все сообщения на MiniMessage — цвета, hover, click-события
- Горячая перезагрузка конфига и языка без рестарта (/domaininfo reload)
- Платформа: Velocity 3.3.0 и выше
- Java: 17 и выше
- База данных: SQLite (без настройки), MySQL 8+, MariaDB 10.6+, PostgreSQL 13+, MongoDB 5+
YAML:
# ██████╗░██████╗░░░███╗░░███████╗██╗░░░██╗
# ██╔══██╗╚════██╗░████║░░╚════██║╚██╗░██╔╝
# ██║░░██║░█████╔╝██╔██║░░░░███╔═╝░╚████╔╝░
# ██║░░██║░╚═══██╗╚═╝██║░░██╔══╝░░░░╚██╔╝░░
# ██████╔╝██████╔╝███████╗███████╗░░░██║░░░
# ╚═════╝░╚═════╝░╚══════╝╚══════╝░░░╚═╝░░░
# Разработано с любовью от студии d31zyStudio
# Язык сообщений. Файл должен лежать в папке lang/ рядом с плагином.
# Доступные из коробки: ru
language: ru
# Тип БД: sqlite | mysql | mariadb | postgresql | mongodb
database:
# Тип базы данных: sqlite | mysql | mariadb | postgresql | mongodb
type: sqlite
# --- SQLite (только для sqlite) ---
# Имя файла внутри папки плагина
sqliteFile: domaininfo.db
# --- SQL-соединение (mysql / mariadb / postgresql) ---
host: localhost
port: 3306
database: d31zy_domaininfo
username: root
password: ''
# --- Пул соединений HikariCP ---
# Максимальный размер пула
maximumPoolSize: 10
# Минимальное количество простаивающих соединений
minimumIdle: 2
connectionTimeout: 30000
idleTimeout: 600000
maxLifetime: 1800000
# --- MongoDB ---
# Полный connection string для MongoDB
mongoUri: mongodb://localhost:27017
# Имя базы данных MongoDB
mongoDatabase: d31zydomaininfo
geolocation:
enabled: true
# {ip} — IP-адрес игрока
# Если вы не знаете как этим пользоваться. Просьба не трогать.
apiUrl: http://ip-api.com/json/{ip}
timeoutMillis: 5000
# Кэш запросов в минутах. 0 = кэш отключён
cacheDurationMinutes: 1440
# Формат строки геолокации. Доступные плейсхолдеры:
# {country} {countryCode} {region} {regionName} {city} {zip} {lat} {lon} {timezone} {isp} {org} {as}
format: '{country} ({countryCode}), {city}'
telegram:
enabled: false
# Токен бота, полученный у @BotFather
botToken: 123456789:AAF...
# Telegram user ID-ы администраторов, которым доступно меню бота.
# Узнать свой ID: написать /start боту @userinfobot
adminIds:
- 123456789
console:
# Логировать подключения игроков
logConnect: true
# Логировать отключения игроков
logDisconnect: true
# Логировать пинги доменов
logPings: false
# Логировать результат геолокации
logGeolocation: true
# Логировать ошибки геолокации
logGeolocationErrors: true
# Формат сообщения о подключении игрока
# Доступные плейсхолдеры: {player}, {domain}, {ip}
connectFormat: '[{player}] подключился к {domain} с IP {ip}'
# Формат сообщения об отключении игрока
# Доступны: {player}, {domain}, {ip}
disconnectFormat: '[{player}] отключился от {domain}'
# Формат сообщения о смене геолокации
# Доступны: {player}, {domain}, {ip}, {old}, {new}
locationChangedFormat: '[{player}] сменил локацию: {old} → {new} (домен {domain})'
# Формат сообщения об ошибке геолокации
# Доступны: {player}, {domain}, {ip}, {error}
geoFailedFormat: 'Не удалось получить геолокацию для {player} ({ip}): {error}'
# Формат сообщения о пинге домена
# Доступны: {domain}, {ip}
pingFormat: Пинг домена {domain} от {ip}
- Команды и права
- /domaininfo || /domain || /di
Главные команды плагина.
Использование:
- /domaininfo- Список активных доменов с онлайном
- Право: d31zydomaininfo.use ( Сразу доступно при OP )
- /domaininfo get <домен>- Игроки онлайн на домене
- Право: d31zydomaininfo.use ( Сразу доступно при OP )
- /domaininfo history <домен> [N]- История подключений (последние N записей)
- Право: d31zydomaininfo.use ( Сразу доступно при OP )
- /domaininfo stats [домен] [период]- Статистика из БД (период: 7d, 2w, 1mo, 1y)
- Право: d31zydomaininfo.use ( Сразу доступно при OP )
- /domaininfo location <игрок>- Геолокация игрока
- Право: d31zydomaininfo.use ( Сразу доступно при OP )
- /domaininfo location <игрок>- Геолокация игрока
- Право: d31zydomaininfo.use ( Сразу доступно при OP )
- /domaininfo locationhistory <игрок>- История смены локаций
- Право: d31zydomaininfo.use ( Сразу доступно при OP )
- /domaininfo pings <домен> [N] - Последние пинги домена
- Право: d31zydomaininfo.use ( Сразу доступно при OP )
- /domaininfo reload - Перезагрузить плагин
- Право: d31zydomaininfo.reload ( Сразу доступно при OP )
- d31zydomaininfo.use- Доступ к командам /domaininfo
- d31zydomaininfo.reload- Перезагрузка конфига
- d31zydomaininfo.notify- Получать уведомления о подключениях в чат
- /domaininfo- Список активных доменов с онлайном