Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Простая статистика для сервера [PHP] [JSON]

synthetic

Активный участник
Пользователь
Баллы
76
Это простой парсер статистики Minecraft, которая хранится в виде JSON-файлов.

Вот так это выглядит:

img1.png
img2.png

Пример работы скрипта можно посмотреть вот здесь.

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

При вызове PHP-скрипта парсер просматривает содержимое папки "stats", в которой хранятся вот такие JSON-файлы. Из них он извлекает нужную информацию об игроках и сохраняет её в собственный кеш, тоже в виде JSON-файла. Затем парсер использует кешированную информацию для создания HTML-страниц, содержащих статистику игроков на сервере.

Где скачать?

Всё лежит на GitHub.

Как его настроить?


Парсер состоит из двух частей: клиента (index.php) и сервера (server.php), которые могут работать на разных компьютерах. Клиент устанавливается на стороне веб-сайта, а сервер на компьютере с Minecraft-сервером.

Сначала нужно настроить сервер.

Сервер

Сервер состоит из следующих файлов:
  • server.php - Этот скрипт занимается извлечением нужной статистики.
  • params.php - Здесь хранятся настройки интересующих нас парметров.
Для того, чтобы серверная часть начала работать достаточно в файле server.php отредактировать один параметр: $statsdir - путь к папке stats на сервере Minecraft.

После этого нужно проверить работу скрипта server.php, введя его адрес в веб-браузере. Скрипт должен отобразить JSON-файл и создать два файла с кешем на веб-сервере.

Клиент

Клиент состоит из следующих файлов:
  • index.php - Этот скрипт генерирует HTML-страницы для просмотра.
  • style.css - Здесь хранятся стили для HTML-страниц.
  • avatar.php - Этот скрипт позволяет генерировать аватары из скинов Minecraft.
  • settings.php - Основной файл настроек.
  • lang.php - Настройки надписей для генерации HTML.
  • params.php - Здесь настраивается список учитываемых параметров для статистики.
Для настройки клиента нужно в первую очередь отредактировать файл settings.php. Основные настройки, которые нужно изменить:
  • $server_path - URL к файлу server.php для получения всей статистики.
  • $avatar_path - URL к файлу avatar.php для получения аватарок.
  • $db_name, $db_username, $db_password, $user_list_query - настройки подключения к базе данных для получения списка пользователей.
Затем потребуется отредактировать файл avatar.php. Для его корректной работы достаточно указать путь к папке со скинами на веб-сервере: $skins_path.

Готово. Наберите в адресной строке веб-браузера путь к файлу index.php и проверьте работу скрипта. Прикрепить статистику к своей CMS можно вставив в нужное место этот HTML-код:

HTML:
<iframe style="border:0;" width="100%" height="1000px" src="/stats/index.php"></iframe>

А как насчет производительности?

Скрипт хранит статистику не в базе данных, а в JSON-файлах, что не есть хорошо. Работа с JSON-файлами происходит медленнее, чем с базой данных. Поэтому, чтобы избежать потерь в производительности сайта введено ограничение на максимальное число пользователей, которые отображаются в статистике: TOP-1000 . Этот параметр настраивается. За простоту приходится платить производительностью и вознёй с настройками. Однако скрипту для работы не требуется никаких плагинов и в этом его преимущество.

P.S. Если нарисуете style.css получше, обязательно поделитесь со мной =)
 
Последнее редактирование:
Папка stats должна быть на сервере? Что-то у меня её нет.
 
А какого размера может быть скин, чтобы из него можно было извлечь аватар? Подозреваю, что с HD скинами не работает.
 
2k16 наступил, а вы все научиться на php писать не можете. Даже такие простые вещи.
 
Код на GitHub обновлен, исправлена парочка багов.
 
Система не очень, сделай, чтобы можно было в скрипте добавлять более 2 серверов.
 
чтобы можно было в скрипте добавлять более 2 серверов.

Не планирую, потому, что это очень сильно усложнит скрипт.
Никто не мешает тебе сделать вторую копию скриптов и настроить их на второй сервер. К сожалению они будут занимать лишние 10 килобайт на хостинге.
 
Не планирую, потому, что это очень сильно усложнит скрипт.
Никто не мешает тебе сделать вторую копию скриптов и настроить их на второй сервер. К сожалению они будут занимать лишние 10 килобайт на хостинге.
Это будут лишние запросы
 
Лучше 10 маленьких запросов к серверу, чем 1 огроменный. Может сработать какой-нибудь Time Limit.
 

Поделиться этой страницей

Назад
Верх