Added full source code
This commit is contained in:
commit
33f8586698
1377 changed files with 123808 additions and 0 deletions
admin
242
admin/game_status.php
Normal file
242
admin/game_status.php
Normal file
|
@ -0,0 +1,242 @@
|
|||
<?php
|
||||
|
||||
set_magic_quotes_runtime(false);
|
||||
|
||||
include("config.inc");
|
||||
include("as_log.inc");
|
||||
|
||||
function redirect() {
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<title>LegacyWorlds Beta 5 > Administration > Game status</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1><a href="index.html">LWB5 > Administration</a> > Game status</h1>
|
||||
<h2>Operation in progress...</h2>
|
||||
<p>
|
||||
A system operation is in progress. Please wait, the page will update in 5 seconds.
|
||||
</p>
|
||||
<script language="JavaScript">
|
||||
window.setTimeout('window.location="game_status.php"', 5000);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
exit(0);
|
||||
}
|
||||
|
||||
function printStatus($status) {
|
||||
static $styles = array(
|
||||
"PRE" => array('yellow', 'red'),
|
||||
"READY" => array('red', 'yellow'),
|
||||
"RUNNING" => array('white', 'green'),
|
||||
"VICTORY" => array('yellow', 'blue'),
|
||||
"ENDING" => array('black', 'yellow'),
|
||||
"FINISHED" => array("white", "black")
|
||||
);
|
||||
|
||||
print "<th style='color:" . $styles[$status][0] . ";background-color:"
|
||||
. $styles[$status][1] . "'>$status</th>";
|
||||
}
|
||||
|
||||
function sendFifo($command) {
|
||||
global $aConfig;
|
||||
|
||||
$fName = $aConfig['ctrlFifo'];
|
||||
if (!file_exists($fName)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$fifo = fopen($fName, "w");
|
||||
fwrite($fifo, "$command\n");
|
||||
fclose($fifo);
|
||||
|
||||
redirect();
|
||||
}
|
||||
|
||||
function handleCommand($command, $game) {
|
||||
if ($command == 'mv' && $game->status() == 'PRE') {
|
||||
__logAdmin("is making game {$game->name} visible");
|
||||
sendFifo("READY {$game->name}");
|
||||
} elseif ($command == 'te' && $game->status() == 'READY' && $game->firstTick() - time() > 24 * 60 * 60 + 30) {
|
||||
__logAdmin("made game {$game->name} start 24h earlier");
|
||||
sendFifo("START {$game->name} EARLY");
|
||||
} elseif ($command == 'tl' && $game->status() == 'READY') {
|
||||
__logAdmin("made game {$game->name} start 24h later");
|
||||
sendFifo("START {$game->name} LATE");
|
||||
} elseif ($command == 'en' && ($game->status() == 'RUNNING' || $game->status() == "VICTORY")) {
|
||||
__logAdmin("terminated game {$game->name}");
|
||||
sendFifo("SETEND {$game->name} 0");
|
||||
} elseif ($command == 'e24' && $game->status() == 'RUNNING') {
|
||||
__logAdmin("set game {$game->name} to end in 24h");
|
||||
sendFifo("SETEND {$game->name} 24");
|
||||
} elseif ($command == 'kr' && $game->status() == 'ENDING') {
|
||||
__logAdmin("prevented game {$game->name} from ending");
|
||||
sendFifo("NOEND {$game->name}");
|
||||
} elseif ($command == 'ee' && $game->status() == 'ENDING' && $game->lastTick() - time() > 24 * 60 * 60 + 30) {
|
||||
__logAdmin("made game {$game->name} end 24h earlier");
|
||||
sendFifo("END {$game->name} EARLY");
|
||||
} elseif ($command == 'el' && $game->status() == 'ENDING') {
|
||||
__logAdmin("made game {$game->name} end 24h later");
|
||||
sendFifo("END {$game->name} LATE");
|
||||
} elseif ($command == 'en' && $game->status() == 'ENDING') {
|
||||
__logAdmin("terminated game {$game->name}");
|
||||
sendFifo("END {$game->name} NOW");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Load the list of games
|
||||
$oldDir = getcwd();
|
||||
chdir("../scripts");
|
||||
$__logPrefix = "lwControl";
|
||||
$__loader = array(
|
||||
'log', 'classloader',
|
||||
'version', 'game', 'tick', 'config',
|
||||
'db_connection', 'db_accessor', 'db',
|
||||
'library'
|
||||
);
|
||||
require_once("loader.inc");
|
||||
chdir($oldDir);
|
||||
|
||||
$games = config::getGames();
|
||||
dbConnect();
|
||||
|
||||
|
||||
// Handle commands
|
||||
if ($_GET['c'] != '') {
|
||||
$cGame = $_GET['g'];
|
||||
if (array_key_exists($cGame, $games) && $cGame != 'main') {
|
||||
handleCommand($_GET['c'], $games[$cGame]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<html>
|
||||
<head>
|
||||
<title>LegacyWorlds Beta 5 > Administration > Game status</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1><a href="index.html">LWB5 > Administration</a> > Game status</h1>
|
||||
|
||||
<h2>Game list</h2>
|
||||
<p>
|
||||
<b>WARNING:</b> make sure you know what you're doing here - there are no second chances on this page;
|
||||
if you click something, that "something" <i>will</i> happen <i>at once</i>.
|
||||
</p>
|
||||
<table border="1" width="100%">
|
||||
<tr>
|
||||
<th style="text-align:left; width:10%">ID</th>
|
||||
<th style="width:10%">Status</th>
|
||||
<th style="text-align:left;width:20%">Name</th>
|
||||
<th style="text-align:left">Ticks</th>
|
||||
<th style="text-align:left;width:30%">Commands</th>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($games as $name => $game) {
|
||||
if ($name == 'main') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$status = $game->status();
|
||||
$firstTick = $game->firstTick();
|
||||
$lastTick = $game->lastTick();
|
||||
|
||||
print " <tr>\n <td><b>$name</b></td>\n";
|
||||
printStatus($status);
|
||||
print " <td>" . htmlentities($game->text) . "</td>\n";
|
||||
print " <td>";
|
||||
if ($firstTick > time()) {
|
||||
print "Starting at " . gmstrftime('%H:%M:%S on %Y-%m-%d', $firstTick);
|
||||
} elseif ($lastTick == 0) {
|
||||
print "Running since " . gmstrftime('%H:%M:%S on %Y-%m-%d', $firstTick);
|
||||
} elseif ($lastTick > time()) {
|
||||
print "Running until " . gmstrftime('%H:%M:%S on %Y-%m-%d', $lastTick);
|
||||
} else {
|
||||
print "Stopped since " . gmstrftime('%H:%M:%S on %Y-%m-%d', $lastTick);
|
||||
}
|
||||
|
||||
if ($status == 'PRE') {
|
||||
$cmd = array(
|
||||
array('mv', 'Make visible')
|
||||
);
|
||||
} elseif ($status == 'READY') {
|
||||
$cmd = array(
|
||||
array('tl', 'Start 24h later')
|
||||
);
|
||||
if ($firstTick - time() > 24 * 60 * 60 + 30) {
|
||||
array_push($cmd, array('te', 'Start 24h earlier'));
|
||||
}
|
||||
} elseif ($status == 'RUNNING') {
|
||||
$cmd = array(
|
||||
array('e24', 'End in 24h'),
|
||||
array('en', 'End now')
|
||||
);
|
||||
} elseif ($status == 'VICTORY') {
|
||||
$cmd = array(
|
||||
array('en', 'End game')
|
||||
);
|
||||
} elseif ($status == 'ENDING') {
|
||||
$cmd = array(
|
||||
array('el', 'Postpone by 24h')
|
||||
);
|
||||
if ($lastTick - time() > 24 * 60 * 60 + 30) {
|
||||
array_push($cmd, array('ee', 'End 24h earlier'));
|
||||
}
|
||||
array_push($cmd, array('en', 'End now'));
|
||||
array_push($cmd, array('kr', 'Keep running'));
|
||||
} else {
|
||||
$cmd = array();
|
||||
}
|
||||
|
||||
print "</td>\n <td>";
|
||||
if (count($cmd)) {
|
||||
$lk = array();
|
||||
foreach ($cmd as $c) {
|
||||
array_push($lk, "<a href='?c=" . $c[0] . "&g=$name' onclick=\"return confirm('You selected \\'"
|
||||
. $c[1] . "\\' on game \\'$name\\'. Please confirm.');\">" . $c[1] . "</a>");
|
||||
}
|
||||
print join(' - ', $lk);
|
||||
} else {
|
||||
print " ";
|
||||
}
|
||||
|
||||
print "</td>\n </tr>\n";
|
||||
}
|
||||
|
||||
?>
|
||||
</table>
|
||||
|
||||
<h3>About game status</h3>
|
||||
<p>Games can have the following status:</p>
|
||||
<table>
|
||||
<tr>
|
||||
<?printStatus('PRE');?>
|
||||
<td>The game is configured, but is hidden for now</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?printStatus('READY');?>
|
||||
<td>The game is visible, but ticks have not started</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?printStatus('RUNNING');?>
|
||||
<td>The game is running normally</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?printStatus('VICTORY');?>
|
||||
<td>The game is still running but someone reached victory</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?printStatus('ENDING');?>
|
||||
<td>The game is still available but is about to end.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?printStatus('FINISHED');?>
|
||||
<td>The game is no longer running and only visible through the rankings page</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue