Skip to content

Commit 16a1a5b

Browse files
author
eAi
committed
Add v0.1 source
1 parent 698d630 commit 16a1a5b

File tree

3 files changed

+255
-0
lines changed

3 files changed

+255
-0
lines changed

misc.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?
2+
include('mta.php');
3+
$server = "localhost:890";
4+
5+
$root = getRootElement();
6+
$type = getElementType($root );
7+
echo "Root element type: $type<br/>";
8+
9+
$resource = getThisResource();
10+
$resourceName = getResourceName($resource );
11+
echo "This resource name: $resourceName";
12+
13+
14+
function getElementType ( $element )
15+
{
16+
global $server;
17+
$retn = callFunction($server, "echobot", "getElementType", $element );
18+
return $retn[0];
19+
}
20+
21+
function getRootElement ( )
22+
{
23+
global $server;
24+
$retn = callFunction($server, "echobot", "getRootElement" );
25+
return $retn[0];
26+
}
27+
28+
function getThisResource ( )
29+
{
30+
global $server;
31+
$retn = callFunction($server, "echobot", "getThisResource" );
32+
return $retn[0];
33+
}
34+
35+
function getResourceName ( $resource )
36+
{
37+
global $server;
38+
$retn = callFunction($server, "echobot", "getResourceName", $resource );
39+
return $retn[0];
40+
}
41+
?>

mta.php

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
<?
2+
$useCurl = false;
3+
4+
class Element {
5+
var $id;
6+
7+
function Element($id)
8+
{
9+
$this->id = $id;
10+
}
11+
12+
function toString()
13+
{
14+
return "^E^" . $this->id;
15+
}
16+
}
17+
18+
class Resource {
19+
var $name;
20+
21+
function Resource($name)
22+
{
23+
$this->name = $name;
24+
}
25+
26+
function toString()
27+
{
28+
return "^R^" . $this->name;
29+
}
30+
}
31+
32+
function callFunction ($server, $resource, $function) {
33+
$val = array();
34+
for ($i = 3;$i < func_num_args();$i++) {
35+
$val[$i-3] = func_get_arg($i);
36+
}
37+
$val = convertFromObjects($val);
38+
$json_output = json_encode($val);
39+
40+
$URL= $server . "/" . $resource . "/call/" . $function ;
41+
$result = do_post_request($URL, $json_output);
42+
return convertToObjects(json_decode ( $result, true ));
43+
}
44+
45+
function convertToObjects ( $item )
46+
{
47+
if ( is_array($item) )
48+
{
49+
foreach ($item as &$value)
50+
{
51+
$value = convertToObjects($value);
52+
}
53+
}
54+
else if ( is_string($item) )
55+
{
56+
if ( substr($item, 0, 3) == "^E^" )
57+
{
58+
$item = new Element(substr($item,3));
59+
}
60+
elseif ( substr($item, 0, 3) == "^R^" )
61+
{
62+
$item = new Resource(substr($item,3));
63+
}
64+
}
65+
return $item;
66+
}
67+
68+
function convertFromObjects ( $item )
69+
{
70+
if ( is_array($item) )
71+
{
72+
foreach ($item as &$value)
73+
{
74+
$value = convertFromObjects($value);
75+
}
76+
}
77+
elseif ( is_object($item) )
78+
{
79+
if ( get_class($item) == "Element" || get_class($item) == "Resource" )
80+
{
81+
$item = $item->toString();
82+
}
83+
}
84+
return $item;
85+
}
86+
87+
function do_post_request($url, $data)
88+
{
89+
if ( $useCurl )
90+
{
91+
$ch = curl_init();
92+
curl_setopt($ch, CURLOPT_URL,"http://$url");
93+
curl_setopt($ch, CURLOPT_POST, 1);
94+
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
95+
$result = curl_exec ($ch);
96+
curl_close ($ch);
97+
return $result;
98+
}
99+
else
100+
{
101+
$params = array('http' => array(
102+
'method' => 'POST',
103+
'content' => $data
104+
));
105+
106+
$ctx = stream_context_create($params);
107+
$fp = @fopen("http://$url", 'rb', false, $ctx);
108+
if (!$fp) {
109+
throw new Exception("Problem with $url, $php_errormsg");
110+
}
111+
$response = @stream_get_contents($fp);
112+
if ($response === false) {
113+
throw new Exception("Problem reading data from $url, $php_errormsg");
114+
}
115+
return $response;
116+
}
117+
}
118+
?>

scoreboard.php

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<?php
2+
include 'mta.php';
3+
4+
$port = $_GET['server'];
5+
6+
$server = "";
7+
8+
if ( $port == "" )
9+
$port = 4;
10+
11+
if ( $port >= 4 && $port <= 7 )
12+
$server = "bastage.student.utwente.nl:3300" . $port;
13+
14+
if ( $server != "" ) {
15+
?>
16+
<html>
17+
<head>
18+
<style type="text/css">
19+
#playerTable {
20+
width: 60%;
21+
border-collapse: collapse;
22+
margin-left: 20%;
23+
margin-right: 20%;
24+
border: 1px solid black;
25+
}
26+
27+
#playerTable thead td {
28+
background: green;
29+
}
30+
31+
#playerTable td {
32+
padding: 3px;
33+
}
34+
35+
body {
36+
font-family: tahoma, arial, helvetica, sans-serif;
37+
font-size: 0.75em;
38+
}
39+
40+
</style>
41+
</head>
42+
<body>
43+
<?
44+
$players = callFunction ( $server, "echobot", "getPlayers" );
45+
if ( is_array($players) )
46+
{ ?>
47+
Players on <?=$server ?>.
48+
<table id="playerTable">
49+
<thead>
50+
<tr>
51+
<td>
52+
Player Name
53+
</td>
54+
<td>
55+
Ping
56+
</td>
57+
</tr>
58+
</thead>
59+
<tbody>
60+
<?
61+
foreach ($players[0] as $player)
62+
{
63+
?>
64+
<tr>
65+
<td>
66+
<?= $player["name"] ?>
67+
</td>
68+
<td>
69+
<?= $player["ping"] ?>
70+
</td>
71+
</tr>
72+
<?
73+
}
74+
?>
75+
</tbody>
76+
</table>
77+
<?
78+
}
79+
else
80+
{
81+
?>
82+
Server is not running the 'echobot' resource.
83+
<?
84+
}
85+
?>
86+
</body>
87+
</html>
88+
<?
89+
}
90+
else
91+
{
92+
?>
93+
You must specify a port between 4 and 7 (inclusive)!
94+
<?
95+
}
96+
?>

0 commit comments

Comments
 (0)