add add Region
This commit is contained in:
parent
312a481b55
commit
a43554a753
|
@ -30,16 +30,19 @@
|
||||||
{
|
{
|
||||||
global $RUNTIME;
|
global $RUNTIME;
|
||||||
|
|
||||||
$topRegionStatement = $RUNTIME['PDO']->prepare("UPDATE onlinetimes SET RegionLastSeen = ? WHERE RegionUUID = ?");
|
$setOnlineTimeStatement = $RUNTIME['PDO']->prepare("UPDATE onlinetimes SET RegionLastSeen = ? WHERE RegionUUID = ?");
|
||||||
$topRegionStatement->execute(array(time(), $uuid));
|
$setOnlineTimeStatement->execute(array(time(), $uuid));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function removeRegion($uuid)
|
public static function removeRegion($uuid)
|
||||||
{
|
{
|
||||||
global $RUNTIME;
|
global $RUNTIME;
|
||||||
|
|
||||||
$topRegionStatement = $RUNTIME['PDO']->prepare("DELETE FROM regions WHERE RegionUUID = ?");
|
$removeRegionStatement = $RUNTIME['PDO']->prepare("DELETE FROM regions WHERE RegionUUID = ?");
|
||||||
$topRegionStatement->execute(array($uuid));
|
$removeRegionStatement->execute(array($uuid));
|
||||||
|
|
||||||
|
$removeRegionStatement = $RUNTIME['PDO']->prepare("DELETE FROM onlinetimes WHERE RegionUUID = ?");
|
||||||
|
$removeRegionStatement->execute(array($uuid));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
|
@ -19,6 +19,20 @@ function right($str, $length)
|
||||||
return substr($str, -$length);
|
return substr($str, -$length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function guidv4($data = null) {
|
||||||
|
// Generate 16 bytes (128 bits) of random data or use the data passed into the function.
|
||||||
|
$data = $data ?? random_bytes(16);
|
||||||
|
assert(strlen($data) == 16);
|
||||||
|
|
||||||
|
// Set version to 0100
|
||||||
|
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
|
||||||
|
// Set bits 6-7 to 10
|
||||||
|
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
|
||||||
|
|
||||||
|
// Output the 36 character UUID.
|
||||||
|
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
|
||||||
|
}
|
||||||
|
|
||||||
function ping($host, $port)
|
function ping($host, $port)
|
||||||
{
|
{
|
||||||
$waitTimeoutInSeconds = 2;
|
$waitTimeoutInSeconds = 2;
|
||||||
|
@ -84,8 +98,24 @@ function getAssetImage($assetServer, $assetUUID)
|
||||||
return $assetUUID.'.png';
|
return $assetUUID.'.png';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getRegionStats($regionHostName)
|
||||||
|
{
|
||||||
|
$optionen = stream_context_create(array('http' => array('timeout' => 1)));
|
||||||
|
$result = file_get_contents("http://".$regionHostName."/jsonSimStats", false, $optionen);
|
||||||
|
|
||||||
|
if($result != "")
|
||||||
|
{
|
||||||
|
return json_decode($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
function getTopRegionHTML($row)
|
function getTopRegionHTML($row)
|
||||||
{
|
{
|
||||||
|
if(!isset($row['Image']))
|
||||||
|
return;
|
||||||
|
|
||||||
if(!file_exists("./data/RegionImages/".$row['Image']))
|
if(!file_exists("./data/RegionImages/".$row['Image']))
|
||||||
$row['Image'] = "notFound.jpg";
|
$row['Image'] = "notFound.jpg";
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,63 @@
|
||||||
<?php
|
<?php
|
||||||
$imageDownloadStatement = $RUNTIME['PDO']->prepare("SELECT QueueData FROM queue WHERE QueueType = 'DownloadImage'");
|
$QueueStatement = $RUNTIME['PDO']->prepare("SELECT * FROM queue WHERE QueueType = 'addRegion'");
|
||||||
$imageDownloadStatement->execute(array());
|
$QueueStatement->execute(array());
|
||||||
|
|
||||||
while($row = $imageDownloadStatement->fetch())
|
while($row = $QueueStatement->fetch())
|
||||||
{
|
{
|
||||||
print_r(json_decode($row['QueueData']));
|
$queueData = json_decode($row['QueueData']);
|
||||||
|
$REGIONDATA = array();
|
||||||
|
|
||||||
|
if(ping($queueData->Hostname, $queueData->Port))
|
||||||
|
{
|
||||||
|
$stats = getRegionStats($queueData->Hostname.":".$queueData->Port);
|
||||||
|
|
||||||
|
if($stats != false)
|
||||||
|
{
|
||||||
|
if($stats->RegionName != $queueData->RegionName)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if(!isset($stats->RootAg))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if(!isset($stats->Version))
|
||||||
|
break;
|
||||||
|
|
||||||
|
$REGIONDATA['Avatare'] = $stats->RootAg;
|
||||||
|
$REGIONDATA['Version'] = trim(substr(str_replace(" ", "", $stats->Version), 0, 16));
|
||||||
|
$REGIONDATA['MAP'] = "http://".$queueData->Hostname.":".$queueData->Port."/index.php?method=regionImage".trim(str_replace("-", "", $queueData->UUID));
|
||||||
|
|
||||||
|
if(isset($queueData->Image))
|
||||||
|
$REGIONDATA['Image'] = $queueData->Image;
|
||||||
|
|
||||||
|
if(!isset($queueData->Image))
|
||||||
|
$REGIONDATA['Image'] = guidv4();
|
||||||
|
|
||||||
|
if(isset($stats->RootAg) && isset($stats->NPCAg))
|
||||||
|
$REGIONDATA['Avatare'] = $stats->RootAg - $stats->NPCAg;
|
||||||
|
|
||||||
|
$QueueStatement = $RUNTIME['PDO']->prepare("REPLACE INTO onlinetimes VALUES (?, ?, ?)");
|
||||||
|
$QueueStatement->execute(array($queueData->UUID, time(), $REGIONDATA['Avatare']));
|
||||||
|
|
||||||
|
$QueueStatement = $RUNTIME['PDO']->prepare("REPLACE INTO regions VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
|
||||||
|
$QueueStatement->execute(array($queueData->RegionName, $queueData->UUID, $queueData->GridName, $REGIONDATA['Image'], "00000000-0000-0000-0000-000000000000", $queueData->Hostname, $queueData->Port, $REGIONDATA['Version']));
|
||||||
|
|
||||||
|
if(isset($queueData->Image))
|
||||||
|
{
|
||||||
|
$QueueStatement = $RUNTIME['PDO']->prepare("INSERT INTO queue VALUES (?, ?, ?)");
|
||||||
|
$QueueStatement->execute(array(guidv4(), "assetImageDownload", json_encode(array("RegionUUID" => $queueData->UUID, "HomeURL" => @$queueData->Image, "TargetAssetUUID" => $queueData->Image))));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!isset($queueData->Image))
|
||||||
|
{
|
||||||
|
$QueueStatement = $RUNTIME['PDO']->prepare("INSERT INTO queue VALUES (?, ?, ?)");
|
||||||
|
$QueueStatement->execute(array(guidv4(), "regionImageDownload", json_encode(array("RegionUUID" => $queueData->UUID, "URL" => $REGIONDATA['MAP'], "TargetAssetUUID" => $REGIONDATA['Image']))));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$removeQueueStatement = $RUNTIME['PDO']->prepare("DELETE FROM queue WHERE QueueID = ?");
|
||||||
|
$removeQueueStatement->execute(array($row['QueueID']));
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -10,7 +10,7 @@
|
||||||
while($region = $RegionManager->getNextRegion())
|
while($region = $RegionManager->getNextRegion())
|
||||||
@$RUNTIME['RegionList'] .= getRegionHTML($region);
|
@$RUNTIME['RegionList'] .= getRegionHTML($region);
|
||||||
|
|
||||||
$HTML->ReplaceLayoutInhalt("%%RegionList%%", $RUNTIME['RegionList']);
|
$HTML->ReplaceLayoutInhalt("%%RegionList%%", @$RUNTIME['RegionList']);
|
||||||
|
|
||||||
|
|
||||||
$HTML->build();
|
$HTML->build();
|
||||||
|
|
Loading…
Reference in New Issue