From 044b55722a0e394a1a8f07aac10f704187cbc9d5 Mon Sep 17 00:00:00 2001 From: AuroraLS3 Date: Sat, 24 Jul 2021 12:59:09 +0000 Subject: [PATCH] 5.4.1396 --- .../assets/plan/plan/bungeeconfig.yml | 12 +- .../resources/assets/plan/plan/config.yml | 12 +- .../assets/plan/plan/locale/locale_CS.txt | 12 +- .../assets/plan/plan/locale/locale_RU.txt | 388 +++++++++--------- .../assets/plan/plan/web/js/filters.js | 12 + .../assets/plan/plan/web/js/network-values.js | 232 ++++++++++- .../assets/plan/plan/web/js/query.js | 4 +- .../assets/plan/plan/web/js/server-values.js | 3 +- .../plan/plan/web/js/sessionAccordion.js | 9 +- .../plan/plan/web/js/xmlhttprequests.js | 13 + .../assets/plan/plan/web/network.html | 210 ++++++++++ .../assets/plan/plan/web/player.html | 2 +- .../assets/plan/plan/web/server.html | 3 + 13 files changed, 698 insertions(+), 214 deletions(-) diff --git a/Plan/src/main/resources/assets/plan/plan/bungeeconfig.yml b/Plan/src/main/resources/assets/plan/plan/bungeeconfig.yml index a941d3acb..6c2b77156 100644 --- a/Plan/src/main/resources/assets/plan/plan/bungeeconfig.yml +++ b/Plan/src/main/resources/assets/plan/plan/bungeeconfig.yml @@ -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: "-" \ No newline at end of file + # https://docs.tebex.io/store/faq#how-can-i-find-my-secret-key + Secret: "-" diff --git a/Plan/src/main/resources/assets/plan/plan/config.yml b/Plan/src/main/resources/assets/plan/plan/config.yml index 2155ba5c7..70016783e 100644 --- a/Plan/src/main/resources/assets/plan/plan/config.yml +++ b/Plan/src/main/resources/assets/plan/plan/config.yml @@ -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 \ No newline at end of file + - ExampleTown diff --git a/Plan/src/main/resources/assets/plan/plan/locale/locale_CS.txt b/Plan/src/main/resources/assets/plan/plan/locale/locale_CS.txt index 1f8603797..a3838427f 100644 --- a/Plan/src/main/resources/assets/plan/plan/locale/locale_CS.txt +++ b/Plan/src/main/resources/assets/plan/plan/locale/locale_CS.txt @@ -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áčů. diff --git a/Plan/src/main/resources/assets/plan/plan/locale/locale_RU.txt b/Plan/src/main/resources/assets/plan/plan/locale/locale_RU.txt index ca8fb7989..9553e6f9b 100644 --- a/Plan/src/main/resources/assets/plan/plan/locale/locale_RU.txt +++ b/Plan/src/main/resources/assets/plan/plan/locale/locale_RU.txt @@ -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 +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 -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 -HTML - QUERY_TIME_TO || >to -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 || Активность на +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 || >с +HTML - QUERY_TIME_TO || >в +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 wiki for Network tutorial. +HTML - TEXT_SERVER_INSTRUCTIONS || Похоже, что Plan не установлен ни на одном игровом сервере или не подключен к той же базе данных. Смотрите вики для помощи. 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 || С HTML ERRORS - ACCESS_DENIED_403 || Доступ закрыт HTML ERRORS - AUTH_FAIL_TIPS_401 || - Убедитесь, что вы зарегистрировали пользователя с помощью /plan register
- Проверьте правильность имени пользователя и пароля
- Имя пользователя и пароль чувствительны к регистру

Если вы забыли ваш пароль, попросите сотрудника удалить вашего старого пользователя и перерегистрировать вас. @@ -450,31 +451,31 @@ HTML ERRORS - PAGE_NOT_FOUND_404 || Страница не сущ HTML ERRORS - UNAUTHORIZED_401 || Не авторизован HTML ERRORS - UNKNOWN_PAGE_404 || Убедитесь, что вы получаете доступ к ссылке, заданной командой, Примеры:

/player/{uuid/name}
/server/{uuid/name/id}

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 || Неизвестный diff --git a/Plan/src/main/resources/assets/plan/plan/web/js/filters.js b/Plan/src/main/resources/assets/plan/plan/web/js/filters.js index 20624c443..4b1a407f1 100644 --- a/Plan/src/main/resources/assets/plan/plan/web/js/filters.js +++ b/Plan/src/main/resources/assets/plan/plan/web/js/filters.js @@ -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; } diff --git a/Plan/src/main/resources/assets/plan/plan/web/js/network-values.js b/Plan/src/main/resources/assets/plan/plan/web/js/network-values.js index 3360fb5d6..21699423f 100644 --- a/Plan/src/main/resources/assets/plan/plan/web/js/network-values.js +++ b/Plan/src/main/resources/assets/plan/plan/web/js/network-values.js @@ -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 = `

No servers found in the database.

It appears that Plan is not installed on any game servers or not connected to the same database. See wiki for Network tutorial.

` @@ -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 = ' 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 += `${server.serverName}` + } + 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}`; + } } \ No newline at end of file diff --git a/Plan/src/main/resources/assets/plan/plan/web/js/query.js b/Plan/src/main/resources/assets/plan/plan/web/js/query.js index 90a5cc410..334eb32ae 100644 --- a/Plan/src/main/resources/assets/plan/plan/web/js/query.js +++ b/Plan/src/main/resources/assets/plan/plan/web/js/query.js @@ -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) { `; -} \ No newline at end of file +} diff --git a/Plan/src/main/resources/assets/plan/plan/web/js/server-values.js b/Plan/src/main/resources/assets/plan/plan/web/js/server-values.js index 62cadcea6..bbf99e043 100644 --- a/Plan/src/main/resources/assets/plan/plan/web/js/server-values.js +++ b/Plan/src/main/resources/assets/plan/plan/web/js/server-values.js @@ -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, diff --git a/Plan/src/main/resources/assets/plan/plan/web/js/sessionAccordion.js b/Plan/src/main/resources/assets/plan/plan/web/js/sessionAccordion.js index fb7e72c2b..e6f1a8928 100644 --- a/Plan/src/main/resources/assets/plan/plan/web/js/sessionAccordion.js +++ b/Plan/src/main/resources/assets/plan/plan/web/js/sessionAccordion.js @@ -109,18 +109,19 @@ function createKillsTable(player_kills) { let table = ''; if (!player_kills.length) { - table += `` + table += `` } for (const kill of player_kills) { table += ` - + } ${kill.victimName} + ` } diff --git a/Plan/src/main/resources/assets/plan/plan/web/js/xmlhttprequests.js b/Plan/src/main/resources/assets/plan/plan/web/js/xmlhttprequests.js index 3d23c2640..a4e1ee544 100644 --- a/Plan/src/main/resources/assets/plan/plan/web/js/xmlhttprequests.js +++ b/Plan/src/main/resources/assets/plan/plan/web/js/xmlhttprequests.js @@ -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(); + })) } \ No newline at end of file diff --git a/Plan/src/main/resources/assets/plan/plan/web/network.html b/Plan/src/main/resources/assets/plan/plan/web/network.html index a5a726040..2d144daa7 100644 --- a/Plan/src/main/resources/assets/plan/plan/web/network.html +++ b/Plan/src/main/resources/assets/plan/plan/web/network.html @@ -75,6 +75,9 @@ Sessions + + + Performance @@ -248,6 +251,9 @@ Some data requires Plan to be installed on game servers.
+

Current Uptime

+

Total Players

Regular Players as Numbers

+

Current Uptime

Last Peak: Players @@ -471,6 +479,205 @@

+ +
+
+ +
+

${networkDisplayName} + · Performance + + + Updating.. + +

+
+ +
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

This data is from only the proxy server (bungeecord or velocity)

+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+ Performance as Numbers
+
+
None--
None---
${kill.date}${kill.killer} ${ - kill.killer === kill.victim + ${kill.killerName} ${ + kill.killerUUID === kill.victimUUID ? '' : '' - } ${kill.victim} ${kill.weapon}${kill.serverName}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Last 30 daysLast 7 daysLast 24 hours
+ Low TPS Spikes +
+ Total Downtime (No Data) +
+ Average Downtime / Server +
Average TPS
Average CPU Usage
Average RAM Usage
Average Entities
+ Average Chunks + +
+ + + +
+
+
+
+ Server selector
+
+ + +
+
+ + +
@@ -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.'); diff --git a/Plan/src/main/resources/assets/plan/plan/web/player.html b/Plan/src/main/resources/assets/plan/plan/web/player.html index 0b4ab0da3..77cb38e2f 100644 --- a/Plan/src/main/resources/assets/plan/plan/web/player.html +++ b/Plan/src/main/resources/assets/plan/plan/web/player.html @@ -147,7 +147,7 @@
+ src="https://cravatar.eu/helmavatar/${playerName}/120.png">

Player Kills

+

Current Uptime

+

Total Players

Regular Players