Как сделать мониторинг майнкрафт серверов

Некоторое время назад я задался вопросом, как же сделать свой статус сервера? Так, чтоб показывать онлайн или оффлайн сервер Minecraft, сколько слотов доступно, сколько игроков играет. Кто по никам играет?
Я нашел плагин для этого, и скрипт на сайт, который выводит данную информацию.
Я пытался продать установку и настройку скрипта, но покупателей не было

Плагин не мой, скрипт тоже, сделаю инструкцию, может кто спасибо скажет?
И так, у вас есть свой сервер Minecraft на bukkit, так же сайт на какой то CMS в которой можно редактировать шаблон(код страницы), загрузить php файлы в директорию сайта. Гордые обладатели сайтов на ucos идут лесом

Что нужно сделать? Первым делом качаем плагин Minequery online (он есть общем файле в конце новости), устанавливаем его на ваш сервер,
в server.properties необходимо добавить строчку minequery-port=25566.

Готово, переходим к сайту , тут все несколько сложнее, но попробуйте разобраться, а я попробую объяснить.

В разархивируем, видим папку core, файл status.php, в папке core есть папка inc и несколько файлов.

Файл mc.inc.php, init.inc.php трогать не надо.

Открываем файл config.inc.php, тут вот такая джигурдень.

$admins,$moderators — ники админов и модераторов, для выделения цветом в списке игроков

Дальше открываем файл status.php, тут Джигурдень намного сложнее

0)
<
$str = » «;
$str .= $info[‘playerList’][$key];
$str .= » «;
unset($info[‘playerList’][$key]);
array_unshift($info[‘playerList’], $str );
>
endwhile;

reset($admins);
while (list ($rr, $val) = each ($admins) ) :
$key = array_search($val, $info[‘playerList’]);
if ($key > 0)
<

$str = » «;
$str .= $info[‘playerList’][$key];
$str .= » «;
unset($info[‘playerList’][$key]);
array_unshift($info[‘playerList’], $str );

Cперва небольшая прелюдия. Для того чтобы правильно читать и воспринимать материал представленный в статьях этой категории, вам необходимы минимальные знания PHP, HTML, CSS, JS, ну и jQuery. Материал будет не самый сложный, но понять его будет невозможно без этих знаний.

Итак, в этой статье мы поговорим о том, как можно сделать статистику / мониторинг (кому как приятнее) своего сервера Minecraft. Для начала нам понадобится класс, представленный ниже. Данный класс я давно нашел, и до сих пор использую. Не помню кто автор, но надеюсь автор не обидится. Для того чтобы данный класс функционировал нормально, нам необходимо будет установить на сервер плагин под названием MineQuery, он работает в связки с буккитом, и если вы хорошо с ним знакомы, проблем с установкой не возникнет. Итак, приступим.

/**
* Queries a Minequery server.
*
* @static
* @param string $address The address to the Minequery server.
* @param int $port The port of the Minequery server.
* @param int $timeout The time given before the connection attempt gives up.
* @return array|bool An array on success, FALSE on failure.
*/
public static function query($address, $port = 25566, $timeout = 30) <
$query = array();

$socket = @fsockopen($address, $port, $errno, $errstr, $timeout);

if (!$socket) <
// Could not establish a connection to the server.
return false;
>

while(!feof($socket)) <
$response .= fgets($socket, 1024);
>

$query[‘latency’] = ($end_time — $beginning_time) * 1000;

/**
* Queries a Minequery server using JSON.
*
* @static
* @param string $address The address to the Minequery server.
* @param int $port The port of the Minequery server.
* @param int $timeout The time given before the connection attempt gives up.
* @return object|bool A stdClass object on success, FALSE on failure.
*/
public static function query_json($address, $port = 25566, $timeout = 30) <
$beginning_time = microtime(true);

$socket = @fsockopen($address, $port, $errno, $errstr, $timeout);

if (!$socket) <
// Could not establish a connection to the server.
return false;
>

while(!feof($socket)) <
$response .= fgets($socket, 1024);
>

$query = json_decode($response);
$query->latency = ($end_time — $beginning_time) * 1000;

Нам понадобится первая функция из этого класса, поэтому сначала создадим экземпляр класса и запишем его в переменную $minequery

[php]$minequery = new Minequery;[/php]

Теперь сделаем проверку на доступность сервера, для этого просто проверим существование переменной $stat_info, в которую передается массив с информацией о сервере. Если он пустой, значит сервак лежит, если в нем есть данные, значит сервак работает.

Массив содержит следующие данные:

  • [serverPort] => 25565 //Порт сервера
  • [playerCount] => 0 //Кол-во игроков на сервере сейчас
  • [maxPlayers] => 25 //Максимальное кол-во игроков
  • [playerList] => Array ( [0] => ) //Массив с игроками (их никнеймы)
  • [latency] => 15.069961547852 //Пинговка сервера

if($stat_info)
<
$status = ‘Игроков на сервере:’ . $stat_info[‘playerCount’] . ‘/’ . $stat_info[‘maxPlayers’] ;
>

else
<
$status = ‘Сервер умер, приходите позже’;
>

Теперь просто выводим переменную $status в нужном для нас месте сайта, и наслаждаемся мониторингом сервера. Если есть какие-нибудь вопросы, можете задать их в комментариях.

Как вам няши в правом, нижнем углу?

Установка внутри.

Радиальный мониторинг для вашего сайта (делается все легко)

Уникальный мониторинг для вашего сервера многим чем отличаеться от других .

1. Гибкая настройка
2. Альтернативный крон (т.к. встречал хостинги без крона о_О)
3. IP и порт вашего сервера не виден в исходном коде фрейма
4. Подробная документация внутри

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Adblock
detector