1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
  3. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем synthetic, 20 ноя 2016.

  1. Автор темы
    synthetic

    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 получше, обязательно поделитесь со мной =)
     
    Последнее редактирование: 20 ноя 2016
  2. Alta-Host

    Alta-Host Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Big_Energy
    Папка stats должна быть на сервере? Что-то у меня её нет.
     
  3. Автор темы
    synthetic

    synthetic Активный участник Пользователь

    Баллы:
    76
    Она находится в папке с миром.
     
  4. itskun

    itskun Активный участник Пользователь

    Баллы:
    68
    Skype:
    itskun
    Имя в Minecraft:
    santrope
    А какого размера может быть скин, чтобы из него можно было извлечь аватар? Подозреваю, что с HD скинами не работает.
     
  5. Автор темы
    synthetic

    synthetic Активный участник Пользователь

    Баллы:
    76
    Любого. Работает.
     
  6. Cames

    Cames Старожил Пользователь

    Баллы:
    153
    Skype:
    sky_meg
    2k16 наступил, а вы все научиться на php писать не можете. Даже такие простые вещи.
     
  7. Автор темы
    synthetic

    synthetic Активный участник Пользователь

    Баллы:
    76
    Код на GitHub обновлен, исправлена парочка багов.
     
  8. Kirich

    Kirich Активный участник Пользователь

    Баллы:
    78
    Система не очень, сделай, чтобы можно было в скрипте добавлять более 2 серверов.
     
  9. Автор темы
    synthetic

    synthetic Активный участник Пользователь

    Баллы:
    76
    Не планирую, потому, что это очень сильно усложнит скрипт.
    Никто не мешает тебе сделать вторую копию скриптов и настроить их на второй сервер. К сожалению они будут занимать лишние 10 килобайт на хостинге.
     
  10. Kirich

    Kirich Активный участник Пользователь

    Баллы:
    78
    Это будут лишние запросы
     
  11. Автор темы
    synthetic

    synthetic Активный участник Пользователь

    Баллы:
    76
    Лучше 10 маленьких запросов к серверу, чем 1 огроменный. Может сработать какой-нибудь Time Limit.
     
  12. Kirich

    Kirich Активный участник Пользователь

    Баллы:
    78
    Дак сделай оптимизированно
     

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