This commit is contained in:
AuroraLS3 2021-07-24 12:59:09 +00:00
parent bfd229d427
commit 044b55722a
13 changed files with 698 additions and 214 deletions

View File

@ -180,7 +180,13 @@ Formatting:
# World aliases can be used to rename worlds and to combine multiple worlds into a group.
# -----------------------------------------------------
World_aliases:
world: world
# List of world names: aliases, case sensitive. Set alias of two worlds to same one to group them.
# Automatically generated, if regex matches world will not be added here.
List:
world: world
# List of - "alias:regex" rules, Set alias of multiple worlds that match regex to group them
Regex:
- "Alias for world:^abc$"
# -----------------------------------------------------
# These settings will make Plan write .js, .css, .json and .html files to some location on disk.
# Relative path will render to /plugins/Plan/path
@ -208,5 +214,5 @@ Export:
# -----------------------------------------------------
Plugins:
Buycraft:
# http://help.buycraft.net/article/36-where-to-find-the-secret-key
Secret: "-"
# https://docs.tebex.io/store/faq#how-can-i-find-my-secret-key
Secret: "-"

View File

@ -185,7 +185,13 @@ Formatting:
# World aliases can be used to rename worlds and to combine multiple worlds into a group.
# -----------------------------------------------------
World_aliases:
world: world
# List of world names: aliases, case sensitive. Set alias of two worlds to same one to group them.
# Automatically generated, if regex matches world will not be added here.
List:
world: world
# List of - "alias:regex" rules, Set alias of multiple worlds that match regex to group them
Regex:
- "Alias for world:^abc$"
# -----------------------------------------------------
# These settings will make Plan write .js, .css, .json and .html files to some location on disk.
# Relative path will render to /plugins/Plan/path
@ -214,11 +220,11 @@ Export:
# -----------------------------------------------------
Plugins:
Buycraft:
# http://help.buycraft.net/article/36-where-to-find-the-secret-key
# https://docs.tebex.io/store/faq#how-can-i-find-my-secret-key
Secret: '-'
Factions:
HideFactions:
- ExampleFaction
Towny:
HideTowns:
- ExampleTown
- ExampleTown

View File

@ -73,14 +73,14 @@ Cmd Header - Inspect || > §2Hráč: §f${0}
Cmd Header - Network || > §2Stránka Sítě
Cmd Header - Players || > §2Hráčů
Cmd Header - Search || > §2${0} Výsledky pro §f${1}§2:
Cmd Header - server list || id::name::uuid
Cmd Header - server list || id::jméno::uuid
Cmd Header - Servers || > §2Servery
Cmd Header - web user list || username::linked to::permission level
Cmd Header - web user list || uživatel::spojen s::úroveň práv
Cmd Header - Web Users || > §2${0} Web uživatelé
Cmd Info - Bungee Connection || §2Připojen na Proxy: §f${0}
Cmd Info - Database || §2Aktivní databáze: §f${0}
Cmd Info - Reload Complete || §aReload Dokončen
Cmd Info - Reload Failed || §cNěco se pokazilo při reloadu pluginu, doporučejem restart serveru.
Cmd Info - Reload Failed || §cNěco se pokazilo při reloadu pluginu, doporučejeme restart serveru.
Cmd Info - Update || §2Dostupná aktualizace: §f${0}
Cmd Info - Version || §2Verze: §f${0}
Cmd network - No network || Server není připojen k síti. Odkaz odkazuje na server stránku.
@ -165,7 +165,7 @@ HTML - COMPARING_15_DAYS || Srovnání posledních 15 dn
HTML - COMPARING_60_DAYS || Srovnání posledních 60 dní
HTML - COMPARING_7_DAYS || Srovnání posledních 7 dní
HTML - DATABASE_NOT_OPEN || Databáze není otevřená, ověřte status databáze s /plan info
HTML - DESCRIBE_RETENTION_PREDICTION || This value is a prediction based on previous players.
HTML - DESCRIBE_RETENTION_PREDICTION || Tato hodnota je odhad dle předchozích hráčů.
HTML - ERROR || Autentifikace neuspěšná kvůli chybě
HTML - EXPIRED_COOKIE || Uživatelské cookie expirovalo
HTML - FILTER_ACTIVITY_INDEX_NOW || Aktuální skupina aktivit
@ -332,7 +332,7 @@ HTML - SIDE_OVERVIEW || Přehled
HTML - SIDE_PERFORMANCE || Výkon
HTML - SIDE_PLAYER_LIST || Seznam hráčů
HTML - SIDE_PLAYERBASE || Hráči
HTML - SIDE_PLAYERBASE_OVERVIEW || Překled základny hráčů
HTML - SIDE_PLAYERBASE_OVERVIEW || Přehled základny hráčů
HTML - SIDE_PLUGINS || PLUGINY
HTML - SIDE_PVP_PVE || PvP & PvE
HTML - SIDE_SERVERS || Servery
@ -464,7 +464,7 @@ In Depth Help - /plan import || Vykoná import k načtení da
In Depth Help - /plan info || Zobrazí aktuální status pluginu.
In Depth Help - /plan ingame || Ukáže některé informace o hráči ve hře.
In Depth Help - /plan json || Dovolí stáhnout hráčská data v json formátu. Všechna.
In Depth Help - /plan logout || Give username argument to log out another user from the panel, give * as argument to log out everyone.
In Depth Help - /plan logout || Vložte argument přezdívky hráče k odhlášení jiného uživatele, použijte * pro odhlášení všech.
In Depth Help - /plan network || Získání odkazu k /network page, pouze na sítích.
In Depth Help - /plan player || Získání odkazu k /player page specifického hráče, či aktuálního.
In Depth Help - /plan players || Získání odkazu k /players page k zobrazení seznamu hráčů.

View File

@ -2,72 +2,72 @@ API - css+ || PageExtension: ${0} доба
API - js+ || PageExtension: ${0} добавил JavaScript(ы) к ${1}, ${2}
Cmd - Click Me || Нажми на меня
Cmd - Link || Ссылка
Cmd - Link Network || Network page:
Cmd - Link Player || Player page:
Cmd - Link Player JSON || Player json:
Cmd - Link Players || Players page:
Cmd - Link Register || Register page:
Cmd - Link Server || Server page:
CMD Arg - backup-file || Name of the backup file (case sensitive)
CMD Arg - code || Code used to finalize registration.
CMD Arg - db type backup || Type of the database to backup. Current database is used if not specified.
CMD Arg - db type clear || Type of the database to remove all data from.
CMD Arg - db type hotswap || Type of the database to start using.
CMD Arg - db type move from || Type of the database to move data from.
CMD Arg - db type move to || Type of the database to move data to. Can not be same as previous.
CMD Arg - db type restore || Type of the database to restore to. Current database is used if not specified.
CMD Arg - feature || Name of the feature to disable: ${0}
CMD Arg - player identifier || Name or UUID of a player
CMD Arg - player identifier remove || Identifier for a player that will be removed from current database.
CMD Arg - server identifier || Name, ID or UUID of a server
CMD Arg - subcommand || Use the command without subcommand to see help.
CMD Arg - username || Username of another user. If not specified player linked user is used.
CMD Arg Name - backup-file || backup-file
Cmd - Link Network || Страница сети:
Cmd - Link Player || Траница игрока:
Cmd - Link Player JSON || JSON Страница игрока:
Cmd - Link Players || Страница игроков:
Cmd - Link Register || Регистриционная страница:
Cmd - Link Server || Страница серверов:
CMD Arg - backup-file || Имя бекап файла (чуствительно к регистру)
CMD Arg - code || Код, использованный для завершения регистрации.
CMD Arg - db type backup || Тип датабазы для бекапа. Текущая база данных, если не указано.
CMD Arg - db type clear || Тип датабазы для удаления всех данных.
CMD Arg - db type hotswap || Тип датабазы для начала использования.
CMD Arg - db type move from || Тип датабазы для переместить информацию с.
CMD Arg - db type move to || Тип датабазы для переместить информацию в. Может быть не одинаковой с предидущей.
CMD Arg - db type restore || Тип датабазы для востановления. Текущая база данных, если не указано.
CMD Arg - feature || Тип датабазы для отключения: ${0}
CMD Arg - player identifier || Ник или UUID игрока
CMD Arg - player identifier remove || Идентификатор игрока, который будет удален из текущей базы данных.
CMD Arg - server identifier || Ник, ID или UUID сервера
CMD Arg - subcommand || Используйте команду без аргументов, для помощи.
CMD Arg - username || Ник другого игрока. Если не указан игрок, используется связанный пользователь.
CMD Arg Name - backup-file || бекап-файл
CMD Arg Name - code || ${code}
CMD Arg Name - export kind || export kind
CMD Arg Name - feature || feature
CMD Arg Name - import kind || import kind
CMD Arg Name - name or uuid || name/uuid
CMD Arg Name - server || server
CMD Arg Name - subcommand || subcommand
CMD Arg Name - username || username
Cmd Confirm - accept || Accept
Cmd Confirm - cancelled, no data change || Cancelled. No data was changed.
Cmd Confirm - cancelled, unregister || Cancelled. '${0}' was not unregistered
Cmd Confirm - clearing db || You are about to remove all Plan-data in ${0}
Cmd Confirm - confirmation || Confirm:
Cmd Confirm - deny || Cancel
Cmd Confirm - Expired || Confirmation expired, use the command again
Cmd Confirm - Fail on accept || The accepted action errored upon execution: ${0}
Cmd Confirm - Fail on deny || The denied action errored upon execution: ${0}
Cmd Confirm - overwriting db || You are about to overwrite data in Plan ${0} with data in ${1}
Cmd Confirm - remove player db || You are about to remove data of ${0} from ${1}
Cmd Confirm - unregister || You are about to unregister '${0}' linked to ${1}
Cmd db - creating backup || Creating a backup file '${0}.db' with contents of ${1}
Cmd db - removal || Removing Plan-data from ${0}..
Cmd db - removal player || Removing data of ${0} from ${1}..
Cmd db - server uninstalled || §aIf the server is still installed, it will automatically set itself as installed in the database.
Cmd db - write || Writing to ${0}..
CMD Arg Name - export kind || вид экспорта
CMD Arg Name - feature || функция
CMD Arg Name - import kind || вид импорта
CMD Arg Name - name or uuid || ник/uuid
CMD Arg Name - server || сервер
CMD Arg Name - subcommand || под-команда
CMD Arg Name - username || ник
Cmd Confirm - accept || Принять
Cmd Confirm - cancelled, no data change || Отменено. Ничего не было изменено.
Cmd Confirm - cancelled, unregister || Отменено. '${0}' не был разрегистрирован
Cmd Confirm - clearing db || Вы точно хотите удалить всю Plan-дату в ${0}
Cmd Confirm - confirmation || Подтвердить:
Cmd Confirm - deny || Отменить
Cmd Confirm - Expired || Срок подтверждения истек, используйте команду заново
Cmd Confirm - Fail on accept || Во время выполнения подтвержденного действия возникла ошибка: ${0}
Cmd Confirm - Fail on deny || Во время выполнения отмененного действия возникла ошибка: ${0}
Cmd Confirm - overwriting db || Вы точно хотите переписать всю информацию ${0} на ${1}
Cmd Confirm - remove player db || Вы точно хотите удалить игрока ${0} с ${1}
Cmd Confirm - unregister || Вы точно хотите разрегестрировать '${0}' привязаного к ${1}
Cmd db - creating backup || Создаем бекап файл '${0}.db' с данными о ${1}
Cmd db - removal || Удаляем дату с ${0}..
Cmd db - removal player || Удаляем игрока ${0} с ${1}..
Cmd db - server uninstalled || §aЕсли сервер все еще установлен, он автоматически добавится как установленный в базе данных.
Cmd db - write || Записываем в ${0}..
Cmd Disable - Disabled || §aPlan сейчас отключен. Вы всё еще можете использовать reload для перезагрузки плагина.
Cmd FAIL - Accepts only these arguments || Accepts following as ${0}: ${1}
Cmd FAIL - Accepts only these arguments || Принимает следующее как ${0}: ${1}
Cmd FAIL - Database not open || §cБаза данных ${0} - Пожалуйста попробуйте снова немного позже.
Cmd FAIL - Empty search string || The search string can not be empty
Cmd FAIL - Empty search string || Строка для поиска не может быть пустой
Cmd FAIL - Invalid Username || §cПользователь не имеет UUID.
Cmd FAIL - No Feature || §eОпределите функцию для отключения! (в настоящее время поддерживает ${0})
Cmd FAIL - No Permission || §cУ вас нет необходимых прав.
Cmd FAIL - No player || Player '${0}' was not found, they have no UUID.
Cmd FAIL - No player register || Player '${0}' was not found in the database.
Cmd FAIL - No server || Server '${0}' was not found from the database.
Cmd FAIL - No player || Игрок '${0}' не был найден, он не имеет UUID.
Cmd FAIL - No player register || Игрок '${0}' не был найден в датабазе.
Cmd FAIL - No server || Сервер '${0}' не был найден в датабазе.
Cmd FAIL - Require only one Argument || §cТребуется только один аргумент ${1}
Cmd FAIL - Requires Arguments || §cТребуется аргумент (${0}) ${1}
Cmd FAIL - see config || see '${0}' in config.yml
Cmd FAIL - see config || смотрите '${0}' в config.yml
Cmd FAIL - Unknown Username || §cПользователь не был замечен на этом сервере
Cmd FAIL - Users not linked || Пользователь не связан с вашей учетной записью, и у вас нет прав на удаление учетных записей других пользователей.
Cmd FAIL - WebUser does not exists || §cПользователь не существует!
Cmd FAIL - WebUser exists || §cПользователь уже существует!
Cmd Footer - Help || §7Hover over command or arguments or use '/${0} ?' to learn more about them.
Cmd Footer - Help || §7Наведите указатель мыши на команду или аргументы, или используйте '/${0} ?' для помощи о них.
Cmd Header - Analysis || > §2Результаты анализа
Cmd Header - Help || > §2/${0} Help
Cmd Header - Help || > §2/${0} Помощь
Cmd Header - Info || > §2Аналитика игрока
Cmd Header - Inspect || > §2Игрок: §f${0}
Cmd Header - Network || > §2Сетевая страница
@ -80,12 +80,12 @@ Cmd Header - Web Users || > §2${0} Веб-пользо
Cmd Info - Bungee Connection || §2Подключен к прокси: §f${0}
Cmd Info - Database || §2Текущая база данных: §f${0}
Cmd Info - Reload Complete || §aПерезагрузка завершена
Cmd Info - Reload Failed || §cЧто-то пошло не так во время перезагрузки плагина, рекомендуется перезагрузка.
Cmd Info - Reload Failed || §cЧто-то пошло не так во время перезагрузки плагина, рекомендуется перезапуск сервера.
Cmd Info - Update || §2Доступно обновление: §f${0}
Cmd Info - Version || §2Версия: §f${0}
Cmd network - No network || Server is not connected to a network. The link redirects to server page.
Cmd Notify - No Address || §eАдрес недоступен - используется localhost в качестве запасного. Настройте 'Alternative_IP'.
Cmd Notify - No WebUser || Возможно, вы не имеете веб-пользователя, используйте /plan register <password>
Cmd network - No network || Сервер не подключен к сети. Ссылка переадресовывает на главную страницу.
Cmd Notify - No Address || §eАдрес недоступен - используется localhost в качестве запасного айпи. Настройте 'Alternative_IP'.
Cmd Notify - No WebUser || Возможно, вы не имеете веб-пользователя, используйте /plan register <пароль>
Cmd Notify - WebUser register || Зарегистрирован новый пользователь: '${0}' Уровень прав: ${1}
Cmd Qinspect - Active Playtime || §2Активное время игры: §f${0}
Cmd Qinspect - Activity Index || §2Индекс активности: §f${0} | ${1}
@ -101,24 +101,24 @@ Cmd Qinspect - Registered || §2Зарегистриро
Cmd Qinspect - Times Kicked || §2Кол-во киков: §f${0}
Cmd SUCCESS - Feature disabled || §aВременно отключено '${0}' до следующей перезагрузки плагина.
Cmd SUCCESS - WebUser register || §aНовый пользователь (${0}) успешно добавлен!
Cmd unregister - unregistering || Unregistering '${0}'..
Cmd unregister - unregistering || Разрегистрируем '${0}'..
Cmd WARN - Database not open || §eБаза данных ${0} - Это может занять больше времени, чем ожидалось.
Cmd Web - Permission Levels || >\§70: Доступ ко всем страницам\§71: Доступ к '/players' и всем страницам игроков\§72: Доступ к странице игрока с тем же именем пользователя, что и для веб-пользователя\§73+: Нет прав
Command Help - /plan db || Manage Plan database
Command Help - /plan db backup || Backup data of a database to a file
Command Help - /plan db clear || Remove ALL Plan data from a database
Command Help - /plan db || Управление датабазой Plan
Command Help - /plan db backup || Сделать бекап датабазы в файл
Command Help - /plan db clear || Удалить ALL Plan дату с датабазы
Command Help - /plan db hotswap || Быстрое изменение базы данных
Command Help - /plan db move || Перемещение данных между базами данных
Command Help - /plan db remove || Remove player's data from Current database
Command Help - /plan db restore || Restore data from a file to a database
Command Help - /plan db uninstalled || Set a server as uninstalled in the database.
Command Help - /plan disable || Disable the plugin or part of it
Command Help - /plan export || Export html or json files manually
Command Help - /plan import || Import data
Command Help - /plan info || Information about the plugin
Command Help - /plan db remove || Удалить игроков с Текущей датабазы
Command Help - /plan db restore || Востановить информацию с файла в датабазу
Command Help - /plan db uninstalled || Установить сервер как не установленный.
Command Help - /plan disable || Отключить плагин или его часть
Command Help - /plan export || Экспортировать html или json файлы самостоятельно
Command Help - /plan import || Импортировать дату
Command Help - /plan info || Информация о плагине
Command Help - /plan ingame || Просмотр информации об игроке в игре
Command Help - /plan json || View json of Player's raw data.
Command Help - /plan logout || Log out other users from the panel.
Command Help - /plan json || Посмотреть сырую json дату игрока.
Command Help - /plan logout || Разлогинить других пользователей панели.
Command Help - /plan network || Просмотр веб-страницы
Command Help - /plan player || Просмотр страницы игрока
Command Help - /plan players || Посмотреть страницу с игроками
@ -127,8 +127,8 @@ Command Help - /plan reload || Перезапустить Pl
Command Help - /plan search || Поиск по имени игрока
Command Help - /plan server || Просмотр страницы сервера
Command Help - /plan servers || Список серверов в базе данных
Command Help - /plan unregister || Unregister a user of Plan website
Command Help - /plan users || List all web users
Command Help - /plan unregister || Разрегистрировать веб-пользователя
Command Help - /plan users || Список всех веб-пользователей
Database - Apply Patch || Применение исправлений: ${0}..
Database - Patches Applied || Все исправления базы данных успешно применены.
Database - Patches Applied Already || Все исправления базы данных уже применены.
@ -139,11 +139,11 @@ Disable || Аналитика игрок
Disable - Processing || Обработка критических необработанных задач. (${0})
Disable - Processing Complete || Обработка завершена.
Disable - Unsaved Session Save || Сохранение незавершенных сессий..
Disable - Unsaved Session Save Timeout || Timeout hit, storing the unfinished sessions on next enable instead.
Disable - Waiting SQLite || Waiting queries to finish to avoid SQLite crashing JVM..
Disable - Waiting SQLite Complete || Closed SQLite connection.
Disable - Waiting Transactions || Waiting for unfinished transactions to avoid data loss..
Disable - Waiting Transactions Complete || Transaction queue closed.
Disable - Unsaved Session Save Timeout || Превышен тайм-аут, вместо этого незавершенные сеансы сохраняются при следующем включении.
Disable - Waiting SQLite || Ждем окончания запросов чтобы SQLite не крашнул JVM..
Disable - Waiting SQLite Complete || Закрыто SQLite соединение.
Disable - Waiting Transactions || Ожидание незавершенных транзакций, чтобы избежать потери данных..
Disable - Waiting Transactions Complete || Запросы транзакций закрыты.
Disable - WebServer || Веб-сервер был отключен.
Enable || Аналитика игрока включена.
Enable - Database || ${0}-соединение с базой данных установлено.
@ -152,27 +152,27 @@ Enable - Notify Empty IP || IP в server.properties пу
Enable - Notify Geolocations disabled || Геолокационный сбор не активен. (Data.Geolocations: false)
Enable - Notify Geolocations Internet Required || Plan'у Требуется доступ в Интернет при первом запуске, чтобы загрузить базу геолокации GeoLite2.
Enable - Notify Webserver disabled || Веб-сервер не был инициализирован. (WebServer.DisableWebServer: true)
Enable - Storing preserved sessions || Storing sessions that were preserved before previous shutdown.
Enable - Storing preserved sessions || Хранение сеансов, которые были сохранены до предыдущего выключения.
Enable - WebServer || Веб-сервер работает на порте ${0} ( ${1} )
Enable FAIL - Database || ${0}-Ошибка подключения к базе данных: ${1}
Enable FAIL - Database Patch || Ошибка обновления базы данных, плагин должен быть отключен. Пожалуйста, сообщите об этой проблеме
Enable FAIL - GeoDB Write || Что-то пошло не так при сохранении загруженной базы геолокации GeoLite2
Enable FAIL - WebServer (Proxy) || Веб-сервер не инициализирован!
Enable FAIL - Wrong Database Type || ${0} неподдерживаемая база данных
HTML - AND_BUG_REPORTERS || & Bug reporters!
HTML - BANNED (Filters) || Banned
HTML - AND_BUG_REPORTERS || & Баг репортеры!
HTML - BANNED (Filters) || Забанен
HTML - COMPARING_15_DAYS || Сравнение 15 дней
HTML - COMPARING_60_DAYS || Сравнение 30 дней назад и сейчас
HTML - COMPARING_7_DAYS || Сравнение 7 дней
HTML - DATABASE_NOT_OPEN || База данных не открыта, проверьте статус БД с помощью /plan info
HTML - DESCRIBE_RETENTION_PREDICTION || This value is a prediction based on previous players.
HTML - DESCRIBE_RETENTION_PREDICTION || Это значение является прогнозом, основанным на предыдущих игроках..
HTML - ERROR || Неуспешная авторизация из-за ошибки
HTML - EXPIRED_COOKIE || Срок действия файла cookie пользователя истек
HTML - FILTER_ACTIVITY_INDEX_NOW || Current activity group
HTML - FILTER_ALL_PLAYERS || All players
HTML - FILTER_BANNED || Ban status
HTML - FILTER_GROUP || Group:
HTML - FILTER_OPS || Operator status
HTML - FILTER_ACTIVITY_INDEX_NOW || Группа текущей деятельности
HTML - FILTER_ALL_PLAYERS || Все игроки
HTML - FILTER_BANNED || Бан статус
HTML - FILTER_GROUP || Группа:
HTML - FILTER_OPS || Оп-статус
HTML - INDEX_ACTIVE || Активный
HTML - INDEX_INACTIVE || Неактивный
HTML - INDEX_IRREGULAR || Нерегулярный
@ -182,23 +182,23 @@ HTML - KILLED || Убит
HTML - LABEL_1ST_WEAPON || Самое смертоносное оружие в PvP
HTML - LABEL_2ND_WEAPON || 2-е PvP оружие
HTML - LABEL_3RD_WEAPON || 3-е PvP оружие
HTML - LABEL_ACTIVE_PLAYTIME || Active Playtime
HTML - LABEL_ACTIVE_PLAYTIME || Активное время игры
HTML - LABEL_ACTIVITY_INDEX || Индекс активности
HTML - LABEL_AFK || AFK
HTML - LABEL_AFK_TIME || Время AFK
HTML - LABEL_AVG || Сред.
HTML - LABEL_AVG_ACTIVE_PLAYTIME || Average Active Playtime
HTML - LABEL_AVG_AFK_TIME || Average AFK Time
HTML - LABEL_AVG_CHUNKS || Average Chunks
HTML - LABEL_AVG_ENTITIES || Average Entities
HTML - LABEL_AVG_ACTIVE_PLAYTIME || Среднее время активной игры
HTML - LABEL_AVG_AFK_TIME || Среднее время AFK
HTML - LABEL_AVG_CHUNKS || Сред. Чанков
HTML - LABEL_AVG_ENTITIES || Сред. Существ
HTML - LABEL_AVG_KDR || Сред. KDR
HTML - LABEL_AVG_MOB_KDR || Сред. моб KDR
HTML - LABEL_AVG_PLAYTIME || Среднее время игры
HTML - LABEL_AVG_SESSION_LENGTH || Средняя продолжительность сеанса
HTML - LABEL_AVG_SESSIONS || Average Sessions
HTML - LABEL_AVG_SESSION_LENGTH || Средняя продолжительность сессии
HTML - LABEL_AVG_SESSIONS || Средняя сессия
HTML - LABEL_AVG_TPS || Средний TPS
HTML - LABEL_BANNED || Забанен
HTML - LABEL_BEST_PEAK || Максимальный пик
HTML - LABEL_BEST_PEAK || Максимальный Пик
HTML - LABEL_DAY_OF_WEEK || День недели
HTML - LABEL_DEATHS || Смерти
HTML - LABEL_DOWNTIME || Время простоя
@ -235,7 +235,7 @@ HTML - LABEL_PLAYER_DEATHS || Смерть из-за игр
HTML - LABEL_PLAYER_KILLS || Убито игроков
HTML - LABEL_PLAYERS_ONLINE || Игроки онлайн
HTML - LABEL_PLAYTIME || Время игры
HTML - LABEL_REGISTERED || Зарегистрированный
HTML - LABEL_REGISTERED || Зарегистрирован
HTML - LABEL_REGISTERED_PLAYERS || Зарегистрированные игроки
HTML - LABEL_REGULAR || Постоянный
HTML - LABEL_REGULAR_PLAYERS || Постоянные игроки
@ -262,71 +262,72 @@ HTML - LINK_QUICK_VIEW || Быстрый просмот
HTML - LINK_SERVER_ANALYSIS || Анализ сервера
HTML - LINK_WIKI || Plan Вики, туториалы и документация
HTML - LOCAL_MACHINE || Локальная машина
HTML - LOGIN_CREATE_ACCOUNT || Create an Account!
HTML - LOGIN_FAILED || Login failed:
HTML - LOGIN_FORGOT_PASSWORD || Forgot Password?
HTML - LOGIN_FORGOT_PASSWORD_INSTRUCTIONS_1 || Forgot password? Unregister and register again.
HTML - LOGIN_FORGOT_PASSWORD_INSTRUCTIONS_2 || Use the following command in game to remove your current user:
HTML - LOGIN_FORGOT_PASSWORD_INSTRUCTIONS_3 || Or using console:
HTML - LOGIN_FORGOT_PASSWORD_INSTRUCTIONS_4 || After using the command,
HTML - LOGIN_LOGIN || Login
HTML - LOGIN_LOGOUT || Logout
HTML - LOGIN_PASSWORD || "Password"
HTML - LOGIN_USERNAME || "Username"
HTML - LOGIN_CREATE_ACCOUNT || Создайте аккаунт!
HTML - LOGIN_FAILED || Логин не удачен:
HTML - LOGIN_FORGOT_PASSWORD || Забыли пароль?
HTML - LOGIN_FORGOT_PASSWORD_INSTRUCTIONS_1 || Забыли пароль? Разрегистрируйтесь и зарегистрируйтесь заново.
HTML - LOGIN_FORGOT_PASSWORD_INSTRUCTIONS_2 || Используйте следующую команду в игре, чтобы удалить текущего пользователя:
HTML - LOGIN_FORGOT_PASSWORD_INSTRUCTIONS_3 || Или используйте консоль:
HTML - LOGIN_FORGOT_PASSWORD_INSTRUCTIONS_4 || После использования команды,
HTML - LOGIN_LOGIN || Вход
HTML - LOGIN_LOGOUT || Выход
HTML - LOGIN_PASSWORD || "Пароль"
HTML - LOGIN_USERNAME || "Имя пользователя"
HTML - NAV_PLUGINS || Плагины
HTML - NEW_CALENDAR || Новое:
HTML - NO_KILLS || Нет убийств
HTML - NO_USER_PRESENT || Пользовательский файл cookie отсутствует
HTML - NON_OPERATORS (Filters) || Non operators
HTML - NOT_BANNED (Filters) || Not banned
HTML - NON_OPERATORS (Filters) || Нету операторов
HTML - NOT_BANNED (Filters) || Нету забаненых
HTML - OFFLINE || Не в сети
HTML - ONLINE || В сети
HTML - OPERATORS (Filters) || Operators
HTML - OPERATORS (Filters) || Операторы
HTML - PER_DAY || / День
HTML - PLAYERS_TEXT || Игроки
HTML - QUERY || Query<
HTML - QUERY_ACTIVITY_OF_MATCHED_PLAYERS || Activity of matched players
HTML - QUERY_ACTIVITY_ON || Activity on <span id="activity-date"></span>
HTML - QUERY_ADD_FILTER || Add a filter..
HTML - QUERY_AND || and
HTML - QUERY_ARE || `are`
HTML - QUERY_ARE_ACTIVITY_GROUP || are in Activity Groups
HTML - QUERY_ARE_PLUGIN_GROUP || are in ${plugin}'s ${group} Groups
HTML - QUERY_JOINED_WITH_ADDRESS || joined with address
HTML - QUERY_LOADING_FILTERS || Loading filters..
HTML - QUERY_MAKE || Make a query
HTML - QUERY_MAKE_ANOTHER || Make another query
HTML - QUERY_OF_PLAYERS || of Players who
HTML - QUERY_PERFORM_QUERY || Perform Query!
HTML - QUERY_PLAYED_BETWEEN || Played between
HTML - QUERY_REGISTERED_BETWEEN || Registered between
HTML - QUERY_RESULTS || Query Results
HTML - QUERY_RESULTS_MATCH || matched ${resultCount} players
HTML - QUERY_SESSIONS_WITHIN_VIEW || Sessions within view
HTML - QUERY_SHOW_VIEW || Show a view
HTML - QUERY_TIME_FROM || >from</label>
HTML - QUERY_TIME_TO || >to</label>
HTML - QUERY_VIEW || View:
HTML - QUERY_ZERO_RESULTS || Query produced 0 results
HTML - REGISTER || Register
HTML - REGISTER_CHECK_FAILED || Checking registration status failed:
HTML - REGISTER_COMPLETE || Complete Registration
HTML - REGISTER_COMPLETE_INSTRUCTIONS_1 || You can now finish registering the user.
HTML - REGISTER_COMPLETE_INSTRUCTIONS_2 || Code expires in 15 minutes
HTML - REGISTER_COMPLETE_INSTRUCTIONS_3 || Use the following command in game to finish registration:
HTML - REGISTER_COMPLETE_INSTRUCTIONS_4 || Or using console:
HTML - REGISTER_CREATE_USER || Create a new user
HTML - REGISTER_FAILED || Registration failed:
HTML - REGISTER_HAVE_ACCOUNT || Already have an account? Login!
HTML - REGISTER_PASSWORD_TIP || Password should be more than 8 characters, but there are no limitations.
HTML - REGISTER_SPECIFY_PASSWORD || You need to specify a Password
HTML - REGISTER_SPECIFY_USERNAME || You need to specify a Username
HTML - REGISTER_USERNAME_LENGTH || Username can be up to 50 characters, yours is
HTML - REGISTER_USERNAME_TIP || Username can be up to 50 characters.
HTML - QUERY || Запрос<
HTML - QUERY_ACTIVITY_OF_MATCHED_PLAYERS || Активность выбраных игроков
HTML - QUERY_ACTIVITY_ON || Активность на <span id="activity-date"></span>
HTML - QUERY_ADD_FILTER || Добавить фильтр..
HTML - QUERY_AND || добавить
HTML - QUERY_ARE || ``
HTML - QUERY_ARE_ACTIVITY_GROUP || в Активных Группах
HTML - QUERY_ARE_PLUGIN_GROUP || в ${plugin} ${group} Группах
HTML - QUERY_JOINED_FROM_COUNTRY || присоединился с страны
HTML - QUERY_JOINED_WITH_ADDRESS || зашел по адресом
HTML - QUERY_LOADING_FILTERS || Загрузка фильтров..
HTML - QUERY_MAKE || Сделать запрос
HTML - QUERY_MAKE_ANOTHER || Сделать другой запрос
HTML - QUERY_OF_PLAYERS || с Игроков кто
HTML - QUERY_PERFORM_QUERY || Выполнить Запрос!
HTML - QUERY_PLAYED_BETWEEN || Играл между
HTML - QUERY_REGISTERED_BETWEEN || Зарегистрировался между
HTML - QUERY_RESULTS || Результаты Запроса
HTML - QUERY_RESULTS_MATCH || найдено ${resultCount} игроков
HTML - QUERY_SESSIONS_WITHIN_VIEW || Сеансы в пределах видимости
HTML - QUERY_SHOW_VIEW || Показывать результат
HTML - QUERY_TIME_FROM || >с</label>
HTML - QUERY_TIME_TO || >в</label>
HTML - QUERY_VIEW || Просмотр:
HTML - QUERY_ZERO_RESULTS || Результал дал 0 результатов
HTML - REGISTER || Регистрация
HTML - REGISTER_CHECK_FAILED || Не удалось проверить статус регистрации:
HTML - REGISTER_COMPLETE || Регистрация завершена
HTML - REGISTER_COMPLETE_INSTRUCTIONS_1 || Вы теперь можете закончить регистрацию пользователя.
HTML - REGISTER_COMPLETE_INSTRUCTIONS_2 || Код будет не действительным через 15 минут
HTML - REGISTER_COMPLETE_INSTRUCTIONS_3 || Используйте следующую команду для заканчивания регистрации:
HTML - REGISTER_COMPLETE_INSTRUCTIONS_4 || Или используйте консоль:
HTML - REGISTER_CREATE_USER || Создаем нового пользователя
HTML - REGISTER_FAILED || Регистрация не удалась:
HTML - REGISTER_HAVE_ACCOUNT || Уже есть акаунт? Войти!
HTML - REGISTER_PASSWORD_TIP || Пароль должен быть более 8 символов, макс. длинна без ограничений.
HTML - REGISTER_SPECIFY_PASSWORD || Вам нужно указать Пароль
HTML - REGISTER_SPECIFY_USERNAME || Вам нужно указать Имя Пользователя
HTML - REGISTER_USERNAME_LENGTH || Макс. длинна Имени Пользователя 50 символов, у вас
HTML - REGISTER_USERNAME_TIP || Макс. длинна Имени Пользователя 50 символов.
HTML - SESSION || Сессия
HTML - SIDE_GEOLOCATIONS || Геолокация
HTML - SIDE_INFORMATION || ИНФОРМАЦИЯ
HTML - SIDE_LINKS || LINKS
HTML - SIDE_LINKS || ССЫЛКИ
HTML - SIDE_NETWORK_OVERVIEW || Обзор сети
HTML - SIDE_OVERVIEW || Обзор
HTML - SIDE_PERFORMANCE || Производительность
@ -338,7 +339,7 @@ HTML - SIDE_PVP_PVE || PvP & PvE
HTML - SIDE_SERVERS || Серверы
HTML - SIDE_SERVERS_TITLE || СЕРВЕРЫ
HTML - SIDE_SESSIONS || Сессии
HTML - SIDE_TO_MAIN_PAGE || на главную страницу
HTML - SIDE_TO_MAIN_PAGE || На главную страницу
HTML - TEXT_CLICK_TO_EXPAND || Нажмите, чтобы развернуть
HTML - TEXT_CONTRIBUTORS_CODE || автор кода
HTML - TEXT_CONTRIBUTORS_LOCALE || переводчик
@ -355,13 +356,13 @@ HTML - TEXT_NO_SERVER || Нет сервера для
HTML - TEXT_NO_SERVERS || В базе данных не найдено ни одного сервера
HTML - TEXT_PLUGIN_INFORMATION || Информация о плагине
HTML - TEXT_PREDICTED_RETENTION || Это значение является прогнозом на основе предыдущих игроков
HTML - TEXT_SERVER_INSTRUCTIONS || It appears that Plan is not installed on any game servers or not connected to the same database. See <a href="https://github.com/plan-player-analytics/Plan/wiki">wiki</a> for Network tutorial.
HTML - TEXT_SERVER_INSTRUCTIONS || Похоже, что Plan не установлен ни на одном игровом сервере или не подключен к той же базе данных. Смотрите <a href="https://github.com/plan-player-analytics/Plan/wiki">вики</a> для помощи.
HTML - TEXT_VERSION || Новая версия была выпущена и теперь доступна для скачивания.
HTML - TITLE_30_DAYS || 30 дней
HTML - TITLE_30_DAYS_AGO || 30 дней назад
HTML - TITLE_ALL || Все
HTML - TITLE_ALL_TIME || Все время
HTML - TITLE_AS_NUMBERS || как числа
HTML - TITLE_AS_NUMBERS || В числах
HTML - TITLE_AVG_PING || Средний пинг
HTML - TITLE_BEST_PING || Наилучший пинг
HTML - TITLE_CALENDAR || Календарь
@ -370,13 +371,13 @@ HTML - TITLE_COUNTRY || Страна
HTML - TITLE_CPU_RAM || ЦПУ & ОЗУ
HTML - TITLE_CURRENT_PLAYERBASE || Текущая база игроков
HTML - TITLE_DISK || Дисковое пространство
HTML - TITLE_GRAPH_DAY_BY_DAY || День за днем
HTML - TITLE_GRAPH_HOUR_BY_HOUR || Hour by Hour
HTML - TITLE_GRAPH_DAY_BY_DAY || Статистика по дням
HTML - TITLE_GRAPH_HOUR_BY_HOUR || Статистика по часам
HTML - TITLE_GRAPH_NETWORK_ONLINE_ACTIVITY || Сетевая активность
HTML - TITLE_GRAPH_PUNCHCARD || Перфокарта на 30 дней
HTML - TITLE_INSIGHTS || Статистика за 30 дней
HTML - TITLE_IS_AVAILABLE || доступен
HTML - TITLE_JOIN_ADDRESSES || Join Addresses
HTML - TITLE_JOIN_ADDRESSES || Адресы Входа
HTML - TITLE_LAST_24_HOURS || Последние 24 часа
HTML - TITLE_LAST_30_DAYS || Последние 30 дней
HTML - TITLE_LAST_7_DAYS || Последние 7 дней
@ -393,7 +394,7 @@ HTML - TITLE_PERFORMANCE_AS_NUMBERS || Производительн
HTML - TITLE_PING || Пинг
HTML - TITLE_PLAYER || Игрок
HTML - TITLE_PLAYER_OVERVIEW || Обзор игрока
HTML - TITLE_PLAYERBASE_DEVELOPMENT || Разработка базы игроков
HTML - TITLE_PLAYERBASE_DEVELOPMENT || Развитие базы игроков
HTML - TITLE_PVP_DEATHS || Недавние PvP смерти
HTML - TITLE_PVP_KILLS || Недавние PvP убийства
HTML - TITLE_PVP_PVE_NUMBERS || PvP & PvE в числах
@ -412,7 +413,7 @@ HTML - TITLE_TPS || TPS
HTML - TITLE_TREND || Тенденция
HTML - TITLE_TRENDS || тенденция за 30 дней
HTML - TITLE_VERSION || Версия
HTML - TITLE_WEEK_COMPARISON || Сравнение недели
HTML - TITLE_WEEK_COMPARISON || Сравнение за неделю
HTML - TITLE_WORLD || Загрузка мира
HTML - TITLE_WORLD_PLAYTIME || Время игры в мире
HTML - TITLE_WORST_PING || Наихудший пинг
@ -426,18 +427,18 @@ HTML - UNIT_NO_DATA || Нет данных
HTML - UNIT_THE_PLAYERS || Игроки
HTML - USER_AND_PASS_NOT_SPECIFIED || Имя пользователя и пароль не указаны
HTML - USER_DOES_NOT_EXIST || Пользователь не существует
HTML - USER_INFORMATION_NOT_FOUND || Registration failed, try again (The code expires after 15 minutes)
HTML - USER_INFORMATION_NOT_FOUND || Регистрация не удалась, попробуйте еще раз (Срок действия кода истекает спустя 15 минут)
HTML - USER_PASS_MISMATCH || Пользователь и пароль не совпадают
HTML - Version Change log || View Changelog
HTML - Version Current || You have version ${0}
HTML - Version Download || Download Plan-${0}.jar
HTML - Version Update || Update
HTML - Version Update Available || Version ${0} is Available!
HTML - Version Update Dev || This version is a DEV release.
HTML - Version Update Info || A new version has been released and is now available for download.
HTML - WARNING_NO_GAME_SERVERS || Some data requires Plan to be installed on game servers.
HTML - WARNING_NO_GEOLOCATIONS || Geolocation gathering needs to be enabled in the config (Accept GeoLite2 EULA).
HTML - WARNING_NO_SPONGE_CHUNKS || Chunks unavailable on Sponge
HTML - Version Change log || Посмотреть журнал изменений
HTML - Version Current || У вас версия ${0}
HTML - Version Download || Скачать Plan-${0}.jar
HTML - Version Update || Обновить
HTML - Version Update Available || Версия ${0} доступна!
HTML - Version Update Dev || Эта версия DEV релиз.
HTML - Version Update Info || Вышла новая версия, и теперь она доступна для скачивания..
HTML - WARNING_NO_GAME_SERVERS || Для некоторых данных требуется установка Plan на игровые сервера.
HTML - WARNING_NO_GEOLOCATIONS || Сбор геолокации должен быть включен в конфигурации (Приймите GeoLite2 EULA).
HTML - WARNING_NO_SPONGE_CHUNKS || Чанки не доступны на Sponge
HTML - WITH || <th>С
HTML ERRORS - ACCESS_DENIED_403 || Доступ закрыт
HTML ERRORS - AUTH_FAIL_TIPS_401 || - Убедитесь, что вы зарегистрировали пользователя с помощью <b>/plan register</b><br>- Проверьте правильность имени пользователя и пароля<br>- Имя пользователя и пароль чувствительны к регистру<br><br>Если вы забыли ваш пароль, попросите сотрудника удалить вашего старого пользователя и перерегистрировать вас.
@ -450,31 +451,31 @@ HTML ERRORS - PAGE_NOT_FOUND_404 || Страница не сущ
HTML ERRORS - UNAUTHORIZED_401 || Не авторизован
HTML ERRORS - UNKNOWN_PAGE_404 || Убедитесь, что вы получаете доступ к ссылке, заданной командой, Примеры:</p><p>/player/{uuid/name}<br>/server/{uuid/name/id}</p>
HTML ERRORS - UUID_404 || UUID игрока не найден в базе данных.
In Depth Help - /plan db || Use different database subcommands to change the data in some way
In Depth Help - /plan db backup || Uses SQLite to backup the target database to a file.
In Depth Help - /plan db clear || Clears all Plan tables, removing all Plan-data in the process.
In Depth Help - /plan db hotswap || Reloads the plugin with the other database and changes the config to match.
In Depth Help - /plan db move || Overwrites contents in the other database with the contents in another.
In Depth Help - /plan db remove || Removes all data linked to a player from the Current database.
In Depth Help - /plan db restore || Uses SQLite backup file and overwrites contents of the target database.
In Depth Help - /plan db uninstalled || Marks a server in Plan database as uninstalled so that it will not show up in server queries.
In Depth Help - /plan disable || Disable the plugin or part of it until next reload/restart.
In Depth Help - /plan export || Performs an export to export location defined in the config.
In Depth Help - /plan import || Performs an import to load data into the database.
In Depth Help - /plan info || Display the current status of the plugin.
In Depth Help - /plan db || Используйте разные аргументы чтобы изменить датабазу в нужную вам сторону
In Depth Help - /plan db backup || Использует SQLite для бекапа нужной датабазы в файл.
In Depth Help - /plan db clear || Очищает все таблицы Plan, удаляя все данные Plan в процессе.
In Depth Help - /plan db hotswap || Перезагружает плагин с другой базой данных и изменяет конфигурацию в соответствии.
In Depth Help - /plan db move || Перезаписывает содержимое другой базы данных содержимым другой базы данных.
In Depth Help - /plan db remove || Удаляет все данные, связанные с игроком, из текущей базы данных.
In Depth Help - /plan db restore || Использует файл резервной копии SQLite и перезаписывает содержимое целевой базы данных.
In Depth Help - /plan db uninstalled || Помечает сервер в базе данных Plan как удаленный, чтобы он не отображался в запросах сервера..
In Depth Help - /plan disable || Отключите плагин или его часть до следующей перезагрузки/перезапуска.
In Depth Help - /plan export || Выполняет экспорт в место экспорта, указанное в конфигурации.
In Depth Help - /plan import || Выполняет импорт для загрузки данных в дата базу.
In Depth Help - /plan info || Показать текущий статус плагина.
In Depth Help - /plan ingame || Отображает некоторую информацию о игроке в игре.
In Depth Help - /plan json || Allows you to download a player's data in json format. All of it.
In Depth Help - /plan logout || Give username argument to log out another user from the panel, give * as argument to log out everyone.
In Depth Help - /plan network || Obtain a link to the /network page, only does so on networks.
In Depth Help - /plan player || Obtain a link to the /player page of a specific player, or the current player.
In Depth Help - /plan players || Obtain a link to the /players page to see a list of players.
In Depth Help - /plan register || Use without arguments to get link to register page. Use --code [code] after registration to get a user.
In Depth Help - /plan reload || Disable and enable the plugin to reload any changes in config.
In Depth Help - /plan search || List all matching player names to given part of a name.
In Depth Help - /plan server || Obtain a link to the /server page of a specific server, or the current server if no arguments are given.
In Depth Help - /plan servers || List ids, names and uuids of servers in the database.
In Depth Help - /plan unregister || Use without arguments to unregister player linked user, or with username argument to unregister another user.
In Depth Help - /plan users || Lists web users as a table.
In Depth Help - /plan json || Позволяет загружать данные плеера в формате json. На этом все.
In Depth Help - /plan logout || Укажите аргумент имени пользователя для его выхода из панели, или укажите аргумент * для выхода всех.
In Depth Help - /plan network || Получить ссылку на страницу /network, только в сетях.
In Depth Help - /plan player || Получите ссылку на страницу /player определенного игрока или текущего игрока.
In Depth Help - /plan players || Получите ссылку на страницу /players, чтобы увидеть список игроков.
In Depth Help - /plan register || Используйте без аргументов, чтобы получить ссылку на страницу регистрации. Используйте --code [код] после регистрации, чтобы получить пользователя.
In Depth Help - /plan reload || Отключите и включите плагин, чтобы перезагрузить любые изменения в конфигурации.
In Depth Help - /plan search || Перечислите все имена игроков, соответствующие заданной части имени.
In Depth Help - /plan server || Получите ссылку на страницу /server, определенного сервера или на текущий сервер, если не указаны аргументы.
In Depth Help - /plan servers || Список айди, нкиов и uuid серверов в датабазе.
In Depth Help - /plan unregister || Используйте без аргументов, чтобы отменить регистрацию пользователя связанного с игроком, или с чтобы отменить регистрацию другого пользователя.
In Depth Help - /plan users || Список веб-пользователей как таблица.
Manage - Confirm Overwrite || Данные в ${0} будут перезаписаны!
Manage - Confirm Removal || Данные в ${0} будут удалены!
Manage - Fail || > §cЧто-то пошло не так: ${0}
@ -487,12 +488,13 @@ Manage - Fail Same Database || > §cНельзя работ
Manage - Fail Same server || Невозможно пометить этот сервер как удаленный (Вы на нем)
Manage - Fail, Confirmation || > §cДобавьте аргумент '-a' для подтверждения выполнения: ${0}
Manage - List Importers || Импортеры:
Manage - Progress || ${0} / ${1} processed..
Manage - Progress || ${0} / ${1} сделано..
Manage - Remind HotSwap || §eНе забудьте поменять на новую базу данных (/plan db hotswap ${0}) и перезагрузить плагин.
Manage - Start || > §2Обработка данных..
Manage - Success || > §aУспех!
Negative || Нет
Positive || Да
ServerInfo - Loading || Загрузка идентификационной информации сервера
Today || 'Сегодня'
Unavailable || Недоступен
Unknown || Неизвестный

View File

@ -102,6 +102,14 @@ class geolocationsFilter extends MultipleChoiceFilter {
}
}
class PluginBooleanGroupsFilter extends MultipleChoiceFilter {
constructor(
id, options
) {
super(id, "pluginsBooleanGroups", `have Plugin boolean value`, options);
}
}
class PluginGroupsFilter extends MultipleChoiceFilter {
constructor(
id, kind, options
@ -220,6 +228,8 @@ function createFilter(filter, id) {
return new PlayedBetweenFilter(id, filter.options);
case "registeredBetween":
return new RegisteredBetweenFilter(id, filter.options);
case "pluginsBooleanGroups":
return new PluginBooleanGroupsFilter(id, filter.options);
default:
throw new Error("Unsupported filter kind: '" + filter.kind + "'");
}
@ -246,6 +256,8 @@ function getReadableFilterName(filter) {
return "Played between";
case "registeredBetween":
return "Registered between";
case "pluginsBooleanGroups":
return "Has plugin boolean value";
default:
return filter.kind;
}

View File

@ -69,6 +69,7 @@ function loadNetworkOverviewValues(json, error) {
data = json.numbers;
element = tab.querySelector('#data_numbers');
element.querySelector('#data_current_uptime').innerText = data.current_uptime;
element.querySelector('#data_total').innerText = data.total_players;
element.querySelector('#data_regular').innerText = data.regular_players;
element.querySelector('#data_online').innerText = data.online_players;
@ -242,7 +243,9 @@ function loadservers(json, error) {
if (!servers || !servers.length) {
let elements = document.getElementsByClassName('nav-servers');
for (let i = 0; i < elements.length; i++) { elements[i].style.display = 'none'; }
for (let i = 0; i < elements.length; i++) {
elements[i].style.display = 'none';
}
document.getElementById('game-server-warning').classList.remove('hidden');
document.getElementById('data_server_list').innerHTML =
`<div class="card shadow mb-4"><div class="card-body"><p>No servers found in the database.</p><p>It appears that Plan is not installed on any game servers or not connected to the same database. See <a href="https://github.com/plan-player-analytics/Plan/wiki">wiki</a> for Network tutorial.</p></div></div>`
@ -323,6 +326,7 @@ function onViewserver(i, servers) {
quickView.querySelector('#data_avg_tps').innerText = server.avg_tps;
quickView.querySelector('#data_low_tps_spikes').innerText = server.low_tps_spikes;
quickView.querySelector('#data_downtime').innerText = server.downtime;
quickView.querySelector('#data_current_uptime').innerText = server.current_uptime;
}, 0);
}
}
@ -444,4 +448,230 @@ function loadJoinAddressPie(json, error) {
} else if (error) {
document.getElementById('joinAddressPie').innerText = `Failed to load graph data: ${error}`;
}
}
function loadPerformanceServerOptions() {
const refreshElement = document.querySelector(`#performance .refresh-element`);
refreshElement.querySelector('i').addEventListener('click', () => {
if (refreshElement.querySelector('.refresh-notice').innerHTML.length) {
return;
}
onSelectPerformanceServers();
refreshElement.querySelector('.refresh-notice').innerHTML = '<i class="fa fa-fw fa-cog fa-spin"></i> Updating..';
});
const selector = document.getElementById('performance-server-selector');
jsonRequest('./v1/network/listServers', function (json, error) {
if (json) {
let options = ``;
for (let server of json.servers) {
options += `<option${server.proxy ? ' selected' : ''} data-plan-server-uuid="${server.serverUUID}">${server.serverName}</option>`
}
selector.innerHTML = options;
onSelectPerformanceServers();
} else if (error) {
selector.innerText = `Failed to load server list: ${error}`
}
});
}
async function onSelectPerformanceServers() {
const selector = document.getElementById('performance-server-selector');
const selectedServerUUIDs = [];
for (const option of selector.selectedOptions) {
selectedServerUUIDs.push(option.getAttribute('data-plan-server-uuid'));
}
const serverUUIDs = encodeURIComponent(JSON.stringify(selectedServerUUIDs));
const loadedJson = {
servers: [],
errors: [],
zones: {},
colors: {},
timestamp_f: ''
}
const time = new Date().getTime();
const monthMs = 2592000000;
const after = time - monthMs;
for (const serverUUID of selectedServerUUIDs) {
jsonRequest(`./v1/graph?type=optimizedPerformance&server=${serverUUID}&after=${after}`, (json, error) => {
if (json) {
loadedJson.servers.push(json);
loadedJson.zones = json.zones;
loadedJson.colors = json.colors;
loadedJson.timestamp_f = json.timestamp_f;
} else if (error) {
loadedJson.errors.push(error);
}
});
}
await awaitUntil(() => selectedServerUUIDs.length === (loadedJson.servers.length + loadedJson.errors.length));
jsonRequest(`./v1/network/performanceOverview?servers=${serverUUIDs}`, loadPerformanceValues);
if (loadedJson.errors.length) {
await loadPerformanceGraph(undefined, loadedJson.errors[0]);
} else {
await loadPerformanceGraph({
servers: loadedJson.servers,
zones: loadedJson.zones,
colors: loadedJson.colors
}, undefined);
}
const refreshElement = document.querySelector(`#performance .refresh-element`);
refreshElement.querySelector('.refresh-time').innerText = loadedJson.timestamp_f;
refreshElement.querySelector('.refresh-notice').innerHTML = "";
}
async function loadPerformanceGraph(json, error) {
if (json) {
const zones = {
tps: [{
value: json.zones.tpsThresholdMed,
color: json.colors.low
}, {
value: json.zones.tpsThresholdHigh,
color: json.colors.med
}, {
value: 30,
color: json.colors.high
}],
disk: [{
value: json.zones.diskThresholdMed,
color: json.colors.low
}, {
value: json.zones.diskThresholdHigh,
color: json.colors.med
}, {
value: Number.MAX_VALUE,
color: json.colors.high
}]
};
const serverData = [];
for (const server of json.servers) {
serverData.push({
serverName: server.serverName,
values: await mapToDataSeries(server.values)
});
}
const series = {
tps: [],
cpu: [],
ram: [],
entities: [],
chunks: [],
disk: []
}
for (const server of serverData) {
series.tps.push({
name: server.serverName, type: s.type.spline, tooltip: s.tooltip.twoDecimals,
data: server.values.tps, color: json.colors.high, zones: zones.tps, yAxis: 0
});
series.cpu.push({
name: server.serverName, type: s.type.spline, tooltip: s.tooltip.twoDecimals,
data: server.values.cpu, color: json.colors.cpu, yAxis: 0
});
series.ram.push({
name: server.serverName, type: s.type.spline, tooltip: s.tooltip.zeroDecimals,
data: server.values.ram, color: json.colors.ram, yAxis: 0
});
series.entities.push({
name: server.serverName, type: s.type.spline, tooltip: s.tooltip.zeroDecimals,
data: server.values.entities, color: json.colors.entities, yAxis: 0
});
series.chunks.push({
name: server.serverName, type: s.type.spline, tooltip: s.tooltip.zeroDecimals,
data: server.values.chunks, color: json.colors.chunks, yAxis: 0
});
series.disk.push({
name: server.serverName, type: s.type.spline, tooltip: s.tooltip.zeroDecimals,
data: server.values.disk, color: json.colors.high, zones: zones.disk, yAxis: 0
});
}
setTimeout(() => lineChart('tpsGraph', series.tps), 10);
setTimeout(() => lineChart('cpuGraph', series.cpu), 20);
setTimeout(() => lineChart('ramGraph', series.ram), 30);
setTimeout(() => lineChart('entityGraph', series.entities), 40);
setTimeout(() => lineChart('chunkGraph', series.chunks), 50);
setTimeout(() => lineChart('diskGraph', series.disk), 60);
} else if (error) {
const errorMessage = `Failed to load graph data: ${error}`;
document.getElementById('tpsGraph').innerText = errorMessage;
document.getElementById('cpuGraph').innerText = errorMessage;
document.getElementById('ramGraph').innerText = errorMessage;
document.getElementById('entityGraph').innerText = errorMessage;
document.getElementById('chunkGraph').innerText = errorMessage;
document.getElementById('diskGraph').innerText = errorMessage;
}
}
/* This function loads Performance tab */
function loadPerformanceValues(json, error) {
const tab = document.getElementById('performance');
if (error) {
displayError(tab, error);
return;
}
// as Numbers
let data = json.numbers;
let element = tab.querySelector('#data_numbers');
element.querySelector('#data_low_tps_spikes_30d').innerText = data.low_tps_spikes_30d;
element.querySelector('#data_low_tps_spikes_7d').innerText = data.low_tps_spikes_7d;
element.querySelector('#data_low_tps_spikes_24h').innerText = data.low_tps_spikes_24h;
element.querySelector('#data_server_downtime_30d').innerText = data.server_downtime_30d;
element.querySelector('#data_server_downtime_7d').innerText = data.server_downtime_7d;
element.querySelector('#data_server_downtime_24h').innerText = data.server_downtime_24h;
element.querySelector('#data_avg_server_downtime_30d').innerText = data.avg_server_downtime_30d;
element.querySelector('#data_avg_server_downtime_7d').innerText = data.avg_server_downtime_7d;
element.querySelector('#data_avg_server_downtime_24h').innerText = data.avg_server_downtime_24h;
element.querySelector('#data_tps_30d').innerText = data.tps_30d;
element.querySelector('#data_tps_7d').innerText = data.tps_7d;
element.querySelector('#data_tps_24h').innerText = data.tps_24h;
element.querySelector('#data_cpu_30d').innerText = data.cpu_30d;
element.querySelector('#data_cpu_7d').innerText = data.cpu_7d;
element.querySelector('#data_cpu_24h').innerText = data.cpu_24h;
element.querySelector('#data_ram_30d').innerText = data.ram_30d;
element.querySelector('#data_ram_7d').innerText = data.ram_7d;
element.querySelector('#data_ram_24h').innerText = data.ram_24h;
element.querySelector('#data_entities_30d').innerText = data.entities_30d;
element.querySelector('#data_entities_7d').innerText = data.entities_7d;
element.querySelector('#data_entities_24h').innerText = data.entities_24h;
element.querySelector('#data_chunks_30d').innerText = data.chunks_30d;
element.querySelector('#data_chunks_7d').innerText = data.chunks_7d;
element.querySelector('#data_chunks_24h').innerText = data.chunks_24h;
}
function loadPingGraph(json, error) {
if (json) {
const series = {
avgPing: {
name: s.name.avgPing,
type: s.type.spline,
tooltip: s.tooltip.twoDecimals,
data: json.avg_ping_series,
color: json.colors.avg
},
maxPing: {
name: s.name.maxPing,
type: s.type.spline,
tooltip: s.tooltip.zeroDecimals,
data: json.max_ping_series,
color: json.colors.max
},
minPing: {
name: s.name.minPing,
type: s.type.spline,
tooltip: s.tooltip.zeroDecimals,
data: json.min_ping_series,
color: json.colors.min
}
};
lineChart('pingGraph', [series.avgPing, series.maxPing, series.minPing]);
} else if (error) {
document.getElementById('pingGraph').innerText = `Failed to load graph data: ${error}`;
}
}

View File

@ -350,7 +350,7 @@ function displayResults(json) {
order: [[5, "desc"]]
});
if (nightmode) {
if ('undefined' !== typeof nightmode && nightmode == true) {
document.querySelector('.table').classList.add('table-dark');
}
@ -508,4 +508,4 @@ function displayDataResultScreen(resultCount, view) {
</div>
</div>
</div>`;
}
}

View File

@ -74,6 +74,7 @@ function loadserverOverviewValues(json, error) {
data = json.numbers;
element = tab.querySelector('#data_numbers');
element.querySelector('#data_current_uptime').innerText = data.current_uptime;
element.querySelector('#data_total').innerText = data.total_players;
element.querySelector('#data_regular').innerText = data.regular_players;
element.querySelector('#data_online').innerText = data.online_players;
@ -369,7 +370,7 @@ async function loadOptimizedPerformanceGraph(json, error) {
value: json.zones.diskThresholdMed,
color: json.colors.low
}, {
value: json.zones.tpsThresholdHigh,
value: json.zones.diskThresholdHigh,
color: json.colors.med
}, {
value: Number.MAX_VALUE,

View File

@ -109,18 +109,19 @@ function createKillsTable(player_kills) {
let table = '<table class="table mb-0"><tbody>';
if (!player_kills.length) {
table += `<tr><td>None</td><td>-</td><td>-</td></tr>`
table += `<tr><td>None</td><td>-</td><td>-</td><td>-</td></tr>`
}
for (const kill of player_kills) {
table += `<tr>
<td>${kill.date}</td>
<td>${kill.killer} ${
kill.killer === kill.victim
<td>${kill.killerName} ${
kill.killerUUID === kill.victimUUID
? '<i class="fa fa-fw fa-skull-crossbones col-red"></i>'
: '<i class="fa fa-fw fa-angle-right col-red"></i>'
} ${kill.victim}</td>
} ${kill.victimName}</td>
<td>${kill.weapon}</td>
<td>${kill.serverName}</td>
</tr>`
}

View File

@ -120,4 +120,17 @@ function newConfiguredXHR(callback) {
};
return xhr;
}
function awaitUntil(predicateFunction) {
return new Promise((resolve => {
const handlerFunction = () => {
if (predicateFunction.apply()) {
resolve();
} else {
setTimeout(handlerFunction, 10)
}
};
handlerFunction();
}))
}

View File

@ -75,6 +75,9 @@
<a class="collapse-item nav-button" href="#tab-sessions-overview"><i
class="far fa-fw fa-calendar-alt"></i>
Sessions</a>
<a class="collapse-item nav-button" href="#tab-performance">
<i class="fas fa-fw fa-cogs"></i>
<span>Performance</span></a>
<hr class="nav-servers dropdown-divider mx-3 my-2">
<div class="nav-servers" id="navSrvContainer">
</div>
@ -248,6 +251,9 @@
Some data requires Plan to be installed on game servers.
</div>
<div class="card-body" id="data_numbers">
<p><i class="col-light-green fa fa-fw fa-power-off"></i> Current Uptime<span
class="float-end" id="data_current_uptime"></span></p>
<hr>
<p><i class="col-black fa fa-fw fa-users"></i> Total Players<span
class="float-end"><b id="data_total"></b></span></p>
<p><i class="col-lime fa fa-fw fa-users"></i> Regular Players<span
@ -376,6 +382,8 @@
<span class="data_server_name"></span> as Numbers</h6>
</div>
<div class="card-body" id="data_quick_view">
<p><i class="col-light-green fa fa-fw fa-power-off"></i> Current Uptime<span
class="float-end" id="data_current_uptime"></span></p>
<p><i class="col-blue fa fa-fw fa-chart-line"></i> Last Peak: <span
id="data_last_peak_date"></span><span class="float-end"><b
id="data_last_peak_players"></b> Players</span>
@ -471,6 +479,205 @@
</div>
</div> <!-- /.container-fluid -->
</div> <!-- End of Sessions tab -->
<!-- Begin Performance Tab -->
<div class="tab" id="performance">
<div class="container-fluid mt-4">
<!-- Page Heading -->
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800"><i class="sidebar-toggler fa fa-fw fa-bars"></i>${networkDisplayName}
&middot; Performance
<span class="refresh-element">
<i class="fa fa-fw fa-sync"></i> <span class="refresh-time"></span>
<span class="refresh-notice"><i class="fa fa-fw fa-cog fa-spin"></i> Updating..</span>
</span>
</h1>
</div>
<div class="row">
<!-- Performance Charts -->
<div class="col-xl-12 col-lg-12 col-sm-12">
<div class="card shadow mb-4">
<ul class="nav nav-tabs" id="performanceChartTab" role="tablist">
<li class="nav-item">
<a aria-controls="profile" aria-selected="true"
class="nav-link col-black active"
data-bs-toggle="tab"
href="#tps" id="performance-tps-tab" role="tab"><i
class="fa fa-fw fa-tachometer-alt col-deep-orange"></i> TPS</a>
</li>
<li class="nav-item">
<a aria-controls="contact" aria-selected="false" class="nav-link col-black"
data-bs-toggle="tab" href="#cpu" id="performance-cpu-tab"
role="tab"><i
class="fa fa-fw fa-tachometer-alt col-amber"></i>
CPU</a>
</li>
<li class="nav-item">
<a aria-controls="contact" aria-selected="false" class="nav-link col-black"
data-bs-toggle="tab" href="#ram" id="performance-ram-tab"
role="tab"><i
class="fa fa-fw fa-microchip col-light-green"></i>
RAM</a>
</li>
<li class="nav-item">
<a aria-controls="contact" aria-selected="false" class="nav-link col-black"
data-bs-toggle="tab" href="#entity" id="performance-entity-tab"
role="tab"><i class="fa fa-fw fa-dragon col-purple"></i>
Entities</a>
</li>
<li class="nav-item">
<a aria-controls="contact" aria-selected="false" class="nav-link col-black"
data-bs-toggle="tab" href="#chunk" id="performance-chunk-tab"
role="tab"><i class="fa fa-fw fa-map col-blue-grey"></i>
Chunks</a>
</li>
<li class="nav-item">
<a aria-controls="contact" aria-selected="false" class="nav-link col-black"
data-bs-toggle="tab" href="#ping" id="performance-ping-tab" role="tab"><i
class="fa fa-fw fa-signal col-amber"></i> Ping</a>
</li>
<li class="nav-item">
<a aria-controls="contact" aria-selected="false" class="nav-link col-black"
data-bs-toggle="tab" href="#disk" id="performance-disk-tab" role="tab"><i
class="fa fa-fw fa-hdd col-green"></i> Disk Space</a>
</li>
</ul>
<div class="tab-content" id="performanceChartTabContent">
<div aria-labelledby="performance-tps-tab" class="tab-pane show active" id="tps"
role="tabpanel">
<div class="chart-area" id="tpsGraph"><span class="loader"></span></div>
</div>
<div aria-labelledby="performance-hardware-tab" class="tab-pane" id="cpu"
role="tabpanel">
<div class="chart-area" id="cpuGraph"><span class="loader"></span></div>
</div>
<div aria-labelledby="performance-hardware-tab" class="tab-pane" id="ram"
role="tabpanel">
<div class="chart-area" id="ramGraph"><span class="loader"></span></div>
</div>
<div aria-labelledby="performance-entity-tab" class="tab-pane"
id="entity"
role="tabpanel">
<div class="chart-area" id="entityGraph"><span class="loader"></span></div>
</div>
<div aria-labelledby="performance-chunk-tab" class="tab-pane"
id="chunk"
role="tabpanel">
<div class="chart-area" id="chunkGraph"><span class="loader"></span></div>
</div>
<div aria-labelledby="performance-ping-tab" class="tab-pane" id="ping"
role="tabpanel">
<p>This data is from only the proxy server (bungeecord or velocity)</p>
<div class="chart-area" id="pingGraph"><span class="loader"></span></div>
</div>
<div aria-labelledby="performance-disk-tab" class="tab-pane" id="disk"
role="tabpanel">
<div class="chart-area" id="diskGraph"><span class="loader"></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<!-- Performance as Numbers -->
<div class="col-lg-8 mb-8 col-sm-12">
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold col-black"><i
class="fa fa-fw fa-book-open col-blue-grey"></i>
Performance as Numbers</h6>
</div>
<table class="table" id="data_numbers">
<thead>
<th></th>
<th>Last 30 days</th>
<th>Last 7 days</th>
<th>Last 24 hours</th>
</thead>
<tbody>
<tr>
<td><i class="fa fa-fw fa-exclamation-circle col-red"></i>
Low TPS Spikes
</td>
<td id="data_low_tps_spikes_30d"></td>
<td id="data_low_tps_spikes_7d"></td>
<td id="data_low_tps_spikes_24h"></td>
</tr>
<tr>
<td><i class="fa fa-fw fa-power-off col-red"></i>
Total Downtime (No Data)
</td>
<td id="data_server_downtime_30d"></td>
<td id="data_server_downtime_7d"></td>
<td id="data_server_downtime_24h"></td>
</tr>
<tr>
<td><i class="fa fa-fw fa-power-off col-red"></i>
Average Downtime / Server
</td>
<td id="data_avg_server_downtime_30d"></td>
<td id="data_avg_server_downtime_7d"></td>
<td id="data_avg_server_downtime_24h"></td>
</tr>
<tr>
<td><i class="fa fa-fw fa-tachometer-alt col-orange"></i> Average TPS</td>
<td id="data_tps_30d"></td>
<td id="data_tps_7d"></td>
<td id="data_tps_24h"></td>
</tr>
<tr>
<td><i class="fa fa-fw fa-tachometer-alt col-amber"></i> Average CPU Usage</td>
<td id="data_cpu_30d"></td>
<td id="data_cpu_7d"></td>
<td id="data_cpu_24h"></td>
</tr>
<tr>
<td><i class="fa fa-fw fa-microchip col-light-green"></i> Average RAM Usage</td>
<td id="data_ram_30d"></td>
<td id="data_ram_7d"></td>
<td id="data_ram_24h"></td>
</tr>
<tr>
<td><i class="fa fa-fw fa-dragon col-purple"></i> Average Entities</td>
<td id="data_entities_30d"></td>
<td id="data_entities_7d"></td>
<td id="data_entities_24h"></td>
</tr>
<tr>
<td>
<i class="fa fa-fw fa-map col-blue-grey"></i> Average Chunks
<i class="far fa-fw fa-eye hidden" id="sponge-chunk-warning"
title="Chunks unavailable on Sponge"></i>
</td>
<td id="data_chunks_30d"></td>
<td id="data_chunks_7d"></td>
<td id="data_chunks_24h"></td>
</tr>
</tbody>
</table>
</div>
</div> <!-- End of Performance as numbers-->
<!-- Insights -->
<div class="col-lg-4 mb-4 col-sm-12">
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold col-black"><i
class="fa fa-fw fa-server col-light-green"></i>
Server selector</h6>
</div>
<select class="form-control" id="performance-server-selector" multiple>
<option selected>Proxy server</option>
<option>Server 1</option>
<option>Skyblock</option>
<option>Server 3</option>
</select>
<button class="btn bg-plan" onclick="onSelectPerformanceServers()">Apply</button>
</div>
</div>
</div>
</div> <!-- /.container-fluid -->
</div> <!-- End of Performance tab -->
<!-- Begin Playerbase Overview Tab -->
<div class="tab" id="playerbase-overview">
<div class="container-fluid mt-4">
@ -928,6 +1135,7 @@
refreshingJsonRequest("./v1/graph?type=joinAddressPie", loadJoinAddressPie, 'playerbase-overview');
refreshingJsonRequest("./v1/graph?type=activity", loadActivityGraphs, 'playerbase-overview');
refreshingJsonRequest("./v1/graph?type=geolocation", loadGeolocationGraph, 'geolocations');
refreshingJsonRequest("../v1/graph?type=aggregatedPing&server=${serverUUID}", loadPingGraph, 'performance');
setLoadingText('Sorting out plugin tables..');
@ -937,6 +1145,8 @@
responsive: true
});
loadPerformanceServerOptions();
setLoadingText('Almost done..');
openPage();
setLoadingText('Done.');

View File

@ -147,7 +147,7 @@
</div>
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
<img class="rounded mx-auto d-block"
src="https://cravatar.eu/avatar/${playerName}/120.png">
src="https://cravatar.eu/helmavatar/${playerName}/120.png">
</div>
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
<p><i class="col-red fa fa-fw fa-crosshairs"></i> Player Kills<span

View File

@ -220,6 +220,9 @@
Server as Numbers</h6>
</div>
<div class="card-body" id="data_numbers">
<p><i class="col-light-green fa fa-fw fa-power-off"></i> Current Uptime<span
class="float-end" id="data_current_uptime"></span></p>
<hr>
<p><i class="col-black fa fa-fw fa-users"></i> Total Players<span
class="float-end"><b id="data_total"></b></span></p>
<p><i class="col-lime fa fa-fw fa-users"></i> Regular Players<span