From 3312269ae2d74e539567320317d36d2668df65ec Mon Sep 17 00:00:00 2001 From: Christopher Date: Sun, 28 Nov 2021 11:58:26 +0000 Subject: [PATCH] =?UTF-8?q?Dateien=20hochladen=20nach=20=E2=80=9Eclassen/O?= =?UTF-8?q?penSimulator=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classen/OpenSimulator/OSRegion.php | 131 +++++++++++++++++++---------- 1 file changed, 88 insertions(+), 43 deletions(-) diff --git a/classen/OpenSimulator/OSRegion.php b/classen/OpenSimulator/OSRegion.php index 62eb7a3..ad9007b 100644 --- a/classen/OpenSimulator/OSRegion.php +++ b/classen/OpenSimulator/OSRegion.php @@ -1,44 +1,89 @@ -Grid = $grid; - - $this->RegionName = $regionName; - $this->RegionImage = $regionImage; - $this->RegionUUID = $regionUUID; - $this->UserUUID = $userUUID; - $this->RegionHostname = $regionHostname; - $this->RegionPort = $regionPort; - - if($regionID == 0) - { - $addRegionStatement = $RUNTIME['PDO']->prepare("INSERT IGNORE INTO regions (GridID, RegionName, RegionUUID, UserUUID, RegionImage, RegionHostname, RegionPort) VALUES (:GridID, :RegionName, :RegionUUID, :UserUUID, :RegionImage, :RegionHostname, :RegionPort)"); - $addRegionStatement->execute(array("GridID" => $this->Grid->getGridID(), "RegionName" => $regionName, "RegionUUID" => $regionUUID, "UserUUID" => $userUUID, "RegionImage" => $regionImage, "RegionHostname" => $regionHostname, "RegionPort" => $regionPort)); - $this->RegionID = $RUNTIME['PDO']->lastInsertId(); - - if($this->RegionID == 0) - { - $getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM regions WHERE RegionName = :RegionName AND GridID = :GridID"); - $getRegionStatement->execute(array("RegionName" => $regionName, "GridID" => $this->Grid->getGridID())); - - if($row = $getRegionStatement->fetch()) - $this->RegionID = $row['RegionID']; - } - } - } - } +Grid = $grid; + + $this->RegionName = $regionName; + $this->RegionImage = $regionImage; + $this->RegionUUID = $regionUUID; + $this->UserUUID = $userUUID; + $this->RegionHostname = $regionHostname; + $this->RegionPort = $regionPort; + $this->RegionID = $regionID; + + if($regionID == 0) + { + $addRegionStatement = $RUNTIME['PDO']->prepare("INSERT IGNORE INTO regions (GridID, RegionName, RegionUUID, UserUUID, RegionImage, RegionHostname, RegionPort) VALUES (:GridID, :RegionName, :RegionUUID, :UserUUID, :RegionImage, :RegionHostname, :RegionPort)"); + $addRegionStatement->execute(array("GridID" => $this->Grid->getGridID(), "RegionName" => $regionName, "RegionUUID" => $regionUUID, "UserUUID" => $userUUID, "RegionImage" => $regionImage, "RegionHostname" => $regionHostname, "RegionPort" => $regionPort)); + $this->RegionID = $RUNTIME['PDO']->lastInsertId(); + + if($this->RegionID == 0) + { + $getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM regions WHERE RegionName = :RegionName AND GridID = :GridID"); + $getRegionStatement->execute(array("RegionName" => $regionName, "GridID" => $this->Grid->getGridID())); + + if($row = $getRegionStatement->fetch()) + $this->RegionID = $row['RegionID']; + } + } + } + + public static function getRegionForOnlineCheck($count) + { + global $RUNTIME; + + $regionList = array(); + + $getRegionStatement = $RUNTIME['PDO']->prepare("SELECT * FROM regions ORDER BY LastSeen LIMIT 15"); + $getRegionStatement->execute(array()); + + while($regionRow = $getRegionStatement->fetch()) + { + $getGridStatement = $RUNTIME['PDO']->prepare("SELECT * FROM grids WHERE GridID = :GridID"); + $getGridStatement->execute(array("GridID" => $regionRow['GridID'])); + + if($gridRow = $getGridStatement->fetch()) + { + $gridData = new OSGrid($gridRow['GridName'], $gridRow['GridHomeURL'], $gridRow['GridAssetServer'], $gridRow['GridIMServer'], $gridRow['GridID']); + + $regionList[] = new OSRegion($regionRow['RegionName'], $regionRow['RegionImage'], $regionRow['RegionUUID'], $regionRow['UserUUID'], $regionRow['RegionHostname'], $regionRow['RegionPort'], $gridData, $regionRow['RegionID']); + } + } + + return $regionList; + } + + public function setOnline($online){ + global $RUNTIME; + + $currentDateTime = new DateTime("NOW"); + $setOnlineStatement = $RUNTIME['PDO']->prepare("UPDATE regions SET Online = :OnlineStatus, LastSeen = :LastSeen WHERE RegionID = :RegionID"); + //$setOnlineStatement->debugDumpParams(); + $setOnlineStatement->execute(array("OnlineStatus" => $online, "RegionID" => $this->RegionID, "LastSeen" => $currentDateTime->format('Y-m-d H:i:s'))); + + echo "Set Online State '".$online."' for region ".$this->RegionName; + } + + public function getHostname(){ + return $this->RegionHostname; + } + + public function getPort(){ + return $this->RegionPort; + } + } ?> \ No newline at end of file