add add Region
This commit is contained in:
parent
312a481b55
commit
a43554a753
|
@ -30,16 +30,19 @@
|
|||
{
|
||||
global $RUNTIME;
|
||||
|
||||
$topRegionStatement = $RUNTIME['PDO']->prepare("UPDATE onlinetimes SET RegionLastSeen = ? WHERE RegionUUID = ?");
|
||||
$topRegionStatement->execute(array(time(), $uuid));
|
||||
$setOnlineTimeStatement = $RUNTIME['PDO']->prepare("UPDATE onlinetimes SET RegionLastSeen = ? WHERE RegionUUID = ?");
|
||||
$setOnlineTimeStatement->execute(array(time(), $uuid));
|
||||
}
|
||||
|
||||
public static function removeRegion($uuid)
|
||||
{
|
||||
global $RUNTIME;
|
||||
|
||||
$topRegionStatement = $RUNTIME['PDO']->prepare("DELETE FROM regions WHERE RegionUUID = ?");
|
||||
$topRegionStatement->execute(array($uuid));
|
||||
$removeRegionStatement = $RUNTIME['PDO']->prepare("DELETE FROM regions WHERE RegionUUID = ?");
|
||||
$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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
$waitTimeoutInSeconds = 2;
|
||||
|
@ -84,8 +98,24 @@ function getAssetImage($assetServer, $assetUUID)
|
|||
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)
|
||||
{
|
||||
if(!isset($row['Image']))
|
||||
return;
|
||||
|
||||
if(!file_exists("./data/RegionImages/".$row['Image']))
|
||||
$row['Image'] = "notFound.jpg";
|
||||
|
||||
|
|
|
@ -1,10 +1,63 @@
|
|||
<?php
|
||||
$imageDownloadStatement = $RUNTIME['PDO']->prepare("SELECT QueueData FROM queue WHERE QueueType = 'DownloadImage'");
|
||||
$imageDownloadStatement->execute(array());
|
||||
$QueueStatement = $RUNTIME['PDO']->prepare("SELECT * FROM queue WHERE QueueType = 'addRegion'");
|
||||
$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())
|
||||
@$RUNTIME['RegionList'] .= getRegionHTML($region);
|
||||
|
||||
$HTML->ReplaceLayoutInhalt("%%RegionList%%", $RUNTIME['RegionList']);
|
||||
$HTML->ReplaceLayoutInhalt("%%RegionList%%", @$RUNTIME['RegionList']);
|
||||
|
||||
|
||||
$HTML->build();
|
||||
|
|
Loading…
Reference in New Issue