Планировщик задач посылает запрос на получение ip:port и получает данные online_p и max из JSON затем записывает в конфиг...
Крон выдает такую ошибку и ничего не записывает, может кто подскажет в чем дело и где я допустил ошибку? Пол дня мучаюсь, извиняюсь за мой ломанный php язык...
Notice: Undefined index: play.mcraft.pw:19132 in /var/www/u0888407/data/www/test.mcraft.pw/cron.php on line 40
CRON$serversData = [];
foreach ($config['servers'] as $server) {
$serversData[] = $server['ip'] . '&port=' . $server['port'];
}
$serversData = implode(',', $serversData);
// Если у вас MCPE сервер, замените ниже mc на mcpe
$url = 'https://localhost/?ip=' . $serversData;
$response = @file_get_contents($url);
if ($response) {
$response = json_decode($response, true);
foreach ($config['servers'] as &$server) {
$rData = $response[$server['ip']. '&port=' .$server['port']];
if ($rData['status'] === true) {
$server['onlinePlayers'] = $rData['players']['online_p'];
$server['totalPlayers'] = $rData['players']['max'];
} else {
$server['onlinePlayers'] = 0;
$server['totalPlayers'] = 0;
}
}
savecfg();
}
КОНФИГ
'servers' =>
array (
0 =>
array (
'name' => 'TEST',
'ip' => 'localhost',
'port' => '19132',
'password' => '123365',
'totalPlayers' => 0, << max
'onlinePlayers' => 0, << online_p
'showMonitoring' => true,
),
),
API СКРИПТ Для получение количество игроков<?php
/*
* MCPEServerPingAPI written by GenesisMiuss
* Version: 1.0.0
* Website: https://miuss.org
* GitHub: https://github.com/miuss/mcapi-pe
*/
header('Content-type:text/json');
$servers = $_GET['ip'];
$port = $_GET['port'];
require_once 'ApiQuery.php';
$json = array(
'status' => 'success',
'online' => false,
'servers' => array(
'ip' => $servers,
'port' => $port
),
'motd' => null,
'version' => array(
'version' => null,
'software' => null,
'plugins' => null
),
'players' => array(
'online_p' => 0,
'max' => 0,
)
);
if ($Info = $Query->GetInfo()) {
if($Info['GameName']=='MINECRAFTPE'){
$json = array(
'status' => 'success',
'online' => true,
'servers' => array(
'ip' => $servers,
'port' => $port
),
'motd' => $Info['HostName'],
'version' => array(
'version' => $Info['Version'],
'software' => $Info['Software'],
'plugins' => $Info['Plugins']
),
'players' => array(
'online_p' => $Info['Players'],
'max' => $Info['MaxPlayers']
)
);
}
}
echo json_encode($json, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
?>
СТАРЫЙ КРОН
$serversData = [];
foreach ($config['servers'] as $server) {
$serversData[] = $server['host'] . '&port=' . $server['port'];
}
$serversData = implode(',', $serversData);
// старый внешний сервис но он уже не рабочий, поэтому было принято решение использовать другой скрипт
$url = 'https://use.gameapis.net/mcpe/query/players/' . $serversData;
$response = @file_get_contents($url);
if ($response) {
$response = json_decode($response, true);
foreach ($config['servers'] as &$server) {
$rData = $response[$server['host']. ':' .$server['port']];
if ($rData['status'] === true) {
$server['onlinePlayers'] = $rData['players']['online'];
$server['totalPlayers'] = $rData['players']['max'];
} else {
$server['onlinePlayers'] = 0;
$server['totalPlayers'] = 0;
}
}
savecfg();
}
Тобиш по порядку: Крон выполняет задачу затем проверяет какой сервер выбирать где включена функция true затем эти же данные он выбирает из API путём json и записывает в конфиг на количество онлайн игроков, но крон этого всего не делает тоесть всплывает ошибка