isLeader()) die('access denied'); if (!$users->csrfCheck()) die('invalid data, please retry'); $name = trim(@$_POST['name']); $owners = explode(',', @$_POST['owner']); foreach ($owners as $i=>$owner) $owners[$i] = $users->userid($owner); $owner = implode(',',$owners); $id = $users->userid(@$_POST['id']); $loc = trim(@$_POST['loc']); if (!$name || !$id || !$loc) die('missing information'); if (isset($PokemonServers[$id])) die('server already exists'); if (substr($loc, 0, 7) === 'http://') $loc = substr($loc, 7); if (substr($loc, 0, 8) === 'https://') $loc = substr($loc, 8); $slashpos = strpos($loc, '/'); if ($slashpos !== false) $loc = substr($loc, 0, $slashpos); if (substr($loc, -8) === '.psim.us') $loc = substr($loc, 0, -8); $parts = explode(':', $loc); $server = $loc; $port = 8000; if (@$parts[1]) { $port = intval($parts[1]); $server = $parts[0]; } else { $dashpos = strrpos($loc, '-'); if ($dashpos !== false && ctype_digit(substr($loc, $dashpos+1))) { $port = intval(substr($loc, $dashpos+1)); $server = substr($loc, 0, $dashpos); } } if (strpos($server, '.') === false) { die("invalid server location"); } $PokemonServers[$id] = [ 'name' => $name, 'id' => $id, 'server' => $server, 'port' => $port ]; if ($owner) $PokemonServers[$id]['owner'] = $owner; saveservers(); } // Server list //================================================================================= includeHeader(); if (@$_POST['act'] === 'addserver') { echo '

Added: '.htmlspecialchars(var_export($PokemonServers[$id],true)).'

'; } $activeservers = []; $inactiveservers = []; $res = $psdb->query("SELECT `serverid`, `date`, `usercount` FROM `ntbb_userstats`"); while ($row = $psdb->fetch_assoc($res)) { $serverid = $row['serverid']; if (!isset($PokemonServers[$serverid])) continue; if (@$PokemonServers[$serverid]['hidden']) continue; if ($timenow - $row['date'] / 1000 > 60 * 30) { $inactiveservers[$serverid] = $row; $inactiveservers[$serverid]['serverentry'] = $PokemonServers[$serverid]; } else { $activeservers[$serverid] = $row; $activeservers[$serverid]['serverentry'] = $PokemonServers[$serverid]; } } function cmpByDate($b, $a) { return $a['date'] - $b['date']; } function cmpByUsercount($b, $a) { return $a['usercount'] - $b['usercount']; } $uninitializedservers = array_diff_key($PokemonServers, $activeservers, $inactiveservers); uasort($activeservers, 'cmpByUsercount'); uasort($inactiveservers, 'cmpByDate'); ?>
isLeader()) { ?>

Add server

Server registration form

Active servers

() .psim.us

Inactive servers

(offline) .psim.us Last online: days ago
isLeader()) { ?>

Untracked servers

(Registered servers that have never been online ever, or whose online state can't be tracked without a token)

$entry) { if (@$entry['hidden']) continue; ?>
(untracked) .psim.us