Skip to content

Instantly share code, notes, and snippets.

@gdude2002
Created February 21, 2010 12:40
Show Gist options
  • Save gdude2002/310291 to your computer and use it in GitHub Desktop.
Save gdude2002/310291 to your computer and use it in GitHub Desktop.
<section id="content" class="body center">
<?php
$socketdie = "No information avaliable";
function runcmd($cmd, $data = NULL ){
global $socket;
$jsondata = json_encode(array ('password'=>'bingy','command'=>$cmd, $data[0]=>$data[1]))."\r\n";
socket_send($socket, $jsondata, strlen($jsondata),0);
if (($bytes = socket_recv($socket, $buf, 16384, NULL)) == false) die($socketdie);
//echo "raw data = ".$buf."<br>";
return json_decode($buf);
}
?>
<?
if(($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP))== false) die($socketdie);
if(socket_connect($socket, '127.0.0.1', 50012) == false) die($socketdie);
?>
<?
$admins = array();
$worlds = runcmd("userworlds");
foreach (runcmd("admins")->admins as $n => $name)
switch($name){
case "gov":
case "littlelink":
case "link.":
case "worldagent":
case "blackandblue":
case "arbot":
case "ax01": break;
default: $admins[$name] = 1; break;
}
foreach (runcmd("users")->users as $n => $name) $users[$name] = 1;
$adminsonline = array();
foreach ($users as $name => $n)
foreach ($admins as $aname => $an)
if($name == $aname) $adminsonline[$aname] =1;
sort($worlds->worlds);
ksort($users);
ksort($admins);
echo "<h2>Statistics</h2>\n";
echo "<ul>\n";
echo "<li>" . count($worlds->worlds) . " worlds online </li>\n";
if(count($users)) echo "<li>" . count($users) . " user" . (count($users) > 1 ? "s":"") . "</li>\n";
if(count($adminsonline)) echo "<li>" . count($adminsonline)." admin" . (count($adminsonline) > 1 ? "s":"") . "</li>\n";
echo "</ul>\n";
echo "<h2>Users</h2>\n";
echo "<ul>\n";
$n = 0;
foreach($users as $name => $stat){
if(!$admins[$name]){
echo "<li>" . $name . "</li>\n";
}
$n++;
}
echo "</ul>\n";
echo "<h3>Admins</h3>\n";
echo "<ul>\n";
$n = 0;
foreach($admins as $name => $stat){
echo "<li>" . $name . ($adminsonline[$name] ? " (online)" : "") . "</li>\n";
$n++;
}
echo "</ul>\n";
echo "<h3>Worlds</h3>\n";
$bgphase = 0;
foreach ($worlds->worlds as $n => $worldinfo){
$userinfo = array();
if(!$bgphase) $bgphase=1;
else $bgphase=0;
$info = $worldinfo[2];
echo "<b>".$worldinfo[0]."</b>\n".
($info->private ? "(Private)" : "(Public)").
($info->locked ? "(Locked)" : "").
($info->physics ? "(Physics)" : "")."\n<br>\n";
foreach ($info->writers as $n => $value) $userinfo[$value] = "Writer: ";
foreach ($info->ops as $n => $value) $userinfo[$value] = "Op: ";
sort($worldinfo[1]);
echo "<ul>\n";
foreach ($worldinfo[1] as $n => $name){
echo "<li>";
if(!$admins[strtolower($name)]) echo ($userinfo[$name]? $userinfo[$name]: "Viewer: ");
else echo "Admin: ";
echo $name."</li>\n";
}
echo "</ul>\n";
}
socket_close($socket);
?>
</section>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment