예제 #1
0
function GenerateCSV()
{
    $servers = Server::getServerList();
    $output = "";
    foreach ($servers as $s) {
        //Write server values into a line (separated by tabs)
        $output .= $s->getPublicKey() . "\t";
        $output .= $s->getName() . "\t";
        $output .= $s->getMotd() . "\t";
        $output .= $s->getPort() . "\t";
        $output .= $s->getAddress() . "\t";
        $output .= $s->getVersion() . "\t";
        $output .= $s->getUserCount() . "\t";
        $output .= $s->getMaxClients() . "\t";
        $output .= $s->getGameMode() . "\t";
        $output .= $s->getUserList() . "\n";
        //Terminate server entry using line break
    }
    return $output;
}
			</div>
<?php 
}
?>
			<h1 class="is-center">Manic Digger Online Servers</h1>
			<div class="pure-g serverlist">
<?php 
require_once "classes/Utility.php";
require_once "classes/Server.php";
$loggedIn = false;
$username = null;
if (isset($_SESSION["user_name"])) {
    $username = $_SESSION["user_name"];
    $loggedIn = true;
}
$servers = Server::getServerList();
$now = new DateTime();
foreach ($servers as $s) {
    $link = "md://" . htmlspecialchars($s->getAddress()) . ":" . htmlspecialchars($s->getPort()) . "/?";
    if ($loggedIn) {
        $link .= "user="******"&auth=" . urlencode(md5($s->getPrivateKey() . $username)) . "&";
    }
    $link .= "serverPassword=" . $s->getPasswordProtected();
    $heartbeat = new DateTime($s->getLastHeartbeatDate());
    $dateDiff = $now->diff($heartbeat);
    $timeDiff = $now->getTimestamp() - $heartbeat->getTimestamp();
    $offline = false;
    if ($timeDiff > 300) {
        $offline = true;
    }
    ?>
 public function assignVariables()
 {
     parent::assignVariables();
     WCF::getTPL()->assign('serverList', Server::getServerList());
 }
 /**
  * @see	Page::readData()
  */
 public function readData()
 {
     parent::readData();
     $this->serverList = Server::getServerList();
 }