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

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

Веб API JMC

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем book777, 4 июл 2014.

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

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

    Баллы:
    123
    Данное API предназначено для получения статуса сервера и его доп. информации без использования каких либо громоздких средств / потери производительности.
    Так же ваш мониторинг сможет работать на бесплатных хостингах с ограниченными возможностями (Hostinger) и на сайтах без поддержки PHP (uCoz).
    Вся информация выдается в формате JSON и кешируется на 20 секунд.

    Что бы получить данные о своем сервере, необходимо произвести HTTP запрос вида

    http://jsonmc.tk/old/?address={IP:PORT} [service.vkurske.org]

    При переходе с пустым значением будет браться IP клиента и стандартный порт

    http://jmc.mymine.su/earthcraft.ru:25566 (первый попавшийся)
    Код:
    {"adress":"earthcraft.ru:25566","ping":45,"geo":"Russia","motd":"<font color=\"00AA00\"><b>OCTPOB CBObODbl<\/b><\/font>","player_online":23,"player_max":120,"percent":20,"version":"1.4.7","online_max":23,"online_max_time":1404473708}
    adress earthcraft.ru:25566 - собственно, сам адрес сервера

    time_update 1404460688 - если есть это значение, значит вы получили кешируемый ответ (на данный момент кеширование 20 секунд). Последнее обновление вермени в unix

    motd <font color=\"00AA00\"><b>OCTPOB CBObODbl<\/b><\/font> - Указанное MOTD на стороне сервера. Форматирование текста в MOTD заменяется на равнозначный вариант HTML

    player_online 16 - онлайн игроков на время запроса / последнего обновления

    player_max 120 - максимальный онлайн

    online_max 16 - максимальный онлайн, зафиксированный со всех запросов к API
    online_max_time 1404460688 - UNIX-время этого момента

    percent 14 - процент онлайна (1-100%)

    ping 44 - время в миллисекундах, за которое сервер ответил API (сам скрипт находится на немецком хостинге)

    version 1.4.7 - версия сервера (у серверов с версии 1.7 еще пишет ядро)

    player_name AssassinCreed, ipple, MrTwinkey, LibMageTech, Slenderman - с версии серверов 1.7 можно получить список игроков, если есть онлайн (отделение идет через ", ")

    favicon data:image/png;base64,iVBORw0KGgo{...}AAA== - с версии серверов 1.7 можно получить иконку сервера, если она установлена

    country Russian Federation - локация

    organization Hetzner Online AG - хостер

    code RU - сокращенная локация

    region Moscow City - регион
    Если сервер недоступен, JSON ответ может иметь следующий вид:
    {"error":"TIMEOUT"}

    Виды ошибок:
    - OFF - по этому адресу и порту (если не указан, то 25565) ничего нет. Замечание: только в ошибке вида "OFF" добавляется пинг.
    - TIMEOUT - слишком долгий ответ сервера (на данный момент timeout 2 секунды).
    - UNKNOWN_ERROR - неизвестная ошибка. Сервер не распознан как minecraft.

    Ниже для метода к серверам от 1.7 версий
    - VERSION<1.7 - вы перешли с версии от 1.7 на более раннюю (эта ошибка однократна и на следующий запрос будет использоваться старый метод).



    Примеры приложений, использующее данное API:

    1. Мониторинг на JS/JQuery [Авторы: @Cyber Owl, @limito]
    2. Пример получения данных посредством PHP
    3. PHP помощник

    - поддержка MCPE
    - поддержка bungeecord
    - поддержка query
    - оптимизация для прироста быстроты обработки №1
    - оптимизация для прироста быстроты обработки №2
    - вывод города(Minsk) и идентификатора страны (BY)

    Спасибо @Cyber Owl за помощь в оформлении темы и разработки js-мониторинга

    Пожертвования на R969285100089 с пометкой JMC пойдут на оплату хостинга

     
    Последнее редактирование: 23 июн 2015
  2. Автор темы
    book777

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

    Баллы:
    123
    Скоро, если не забуду, напишу мониторинги на обычном PHP с основы этого API

    Вот пока что самый простой пример:
    PHP:
    <?php

    $address 
    'mc.hypixel.net';# Адрес сервера

    $server = @file_get_contents('http://jmc.mymine.su/'.$address);# Получение ответа с запроса
    $tree json_decode($server1);# Разбиение на массивы

    echo "
        
    {$tree['motd']} - motd<br>
        
    {$tree['player_online']} - player_online<br>
        
    {$tree['player_max']} - player_max<br>
        <img src=\"
    {$tree['favicon']}\"/> - favicon<br>
        
    {$tree['geo']} - geo<br>
        
    {$tree['version']} - version<br>
        
    {$tree['online_max']} - online_max<br>
        "
    .date('l jS \of F Y h:i:s A'$tree['online_max_time'])." - online_max_time<br>
        
    {$tree['player_name']} - player_name
    "
    ;

    ?>
     
    Последнее редактирование: 14 авг 2014
  3. Cyber Owl

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

    Баллы:
    153
    Пример работы API на JS/JQuery.
    Дизайн, выводимый HTML и прочее - все можно сделать на ваше усмотрение.
    Если необходимо, могу предоставить дополнительную информацию об установке/настройке.

    // Добавил небольшие "доки"
     
    Последнее редактирование: 4 июл 2014
  4. Evan

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

    Баллы:
    123
    тебе в натуре делать нечего :D всякие плюшки делаешь за даром)
     
  5. Cyber Owl

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

    Баллы:
    153
    Почему бы и нет, ведь API вполне не слабо облегчает жизнь разработчикам различных мониторингов/проектов.
     
  6. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
  7. Cyber Owl

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

    Баллы:
    153
    Обновлен JS мониторинг.
    + Рекордный онлайн
    + Отображение даты рекордного онлайна
    + Немного изменен дизайн.
    + Добавлена функция refreshBtn() + кнопка.

    // Перенос темы JS мониторинга в эту тему
     
    Последнее редактирование: 4 июл 2014
  8. Автор темы
    book777

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

    Баллы:
    123
    Важная информация: будут изменены названия переменных после обновления
    Обновил шапку. Пофиксил серьезный баг с кешированием. Оптимизировал код. Добавил больше информации о сервере.

    Когда-нибудь доберусь до создания поддержки банджикорда и query. Пожертвования меня подгонят =)
     
  9. niki96

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

    Баллы:
    123
  10. Dr.Death

    Dr.Death Старожил Пользователь

    Баллы:
    153
    Skype:
    asn008
    Имя в Minecraft:
    DrDeath
    Почему API возвращает список игроков как строку, когда можно возвращать как массив?
    Алсо, вы бы сделали версионирование API на будущее. Лишним не будет и это позволит безопасно обновлять формат ответа API, если у кого-то что-то сломается
     
  11. Автор темы
    book777

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

    Баллы:
    123
    Можно сделать. Даже идея о отдельном домене есть, но 100 рублей ой как лень тратить.
    За всё время только 1 раз поблагодарили в размере 20р
     
  12. Mihail0v

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

    Баллы:
    61
  13. Semen4ik

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

    Баллы:
    123
    Skype:
    Semenov1215
    Имя в Minecraft:
    Semen4ik
    Чувак, санкции :D
    Удобная штука, правда лучше держать у себя, т.к. твой сервер положить могут и мониторинг у других работать не будет.
     
  14. Автор темы
    book777

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

    Баллы:
    123
  15. Mihail0v

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

    Баллы:
    61
    Не знаю что там у них за проблемы, но факт в том, что это есть, и это работало, и, скороее всего, будет работать позже. (Странно, я еще у одной АПИ проверил, та же самая ошибка, может совпадение)
    Насчет информации:
    Информация о геолокации ничего по сути не даст конечному пользователю, если только этот человек не додумается сделать рейтинг серверов с твоим АПИ, но тогда он у тебя полетит из-за нагрузки(несмотря на то, что данные ты кэшируешь).
    Процент можно самому посчитать, а максимальный онлайн да, это можно считать как полезной дополнительной информацией.
    Во всем остальном, тут такие же возможности, что и в других АПИ.
    Продолжать разработку надеясь на какой-то результат или нет, твое дело, я бы не стал.
     
  16. niki96

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

    Баллы:
    123
    Какие мы умные. пздц просто
     
  17. Автор темы
    book777

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

    Баллы:
    123
    Дело не только в геолокации. У меня еще процент онлайна, максимально зафиксированный онлайн с временем, пинг от германии. И это только для серверов версии ниже 1.7. Выше идет вывод ядра, имена игроков онлайн, а так же картинка сервера (favicon)

    В общем всё, что только можно
     
  18. Mihail0v

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

    Баллы:
    61
    Кто-то посчитал не нужным дочитать мое сообщение. Я написал про процент и макс.онлайн.
    GITHUB, взгляни на этот репозиторий, тоже позволяет получить favicon и пинг.
    Про вывод игроков можно было и не писать, это стандартная функция.
    В принципе я уже все сказал, это лично твое дело, продолжать эту идею или нет.
     
  19. Автор темы
    book777

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

    Баллы:
    123
    Но на бесплатных хостингах таким скриптом не воспользуешься
     
  20. misterney

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

    Баллы:
    78
    Skype:
    misterney
    Имя в Minecraft:
    misterney
    Ты шикарен! Прикрутил твой API к своему сайту визитке. Работает как часы!
     

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