'Guest', 'symbol' => '', ), array( 'name' => '', 'symbol' => '', ), array( 'name' => 'Administrator', 'symbol' => '~', ), array( 'name' => 'Voice', 'symbol' => '+', ), array( 'name' => 'Driver', 'symbol' => '%', ), array( 'name' => 'Moderator', 'symbol' => '@', ), array( 'name' => 'Leader', 'symbol' => '&', ), ); $STANDINGS = $psconfig['standings']; include '../lib/ntbb-session.lib.php'; include '../lib/ntbb-ladder.lib.php'; include 'lib/panels.lib.php'; $authLevel = 0; $auth2FA = substr($curuser['email'] ?? '', -1) === '@'; if ($curuser['group'] == 4) $authLevel = 2; // driver if ($curuser['group'] == 5) $authLevel = 3; // mod if ($curuser['group'] == 6) $authLevel = 4; // leader if ($curuser['group'] == 6 && $auth2FA) $authLevel = 5; // leader with 2FA if ($curuser['group'] == 2 && $auth2FA) $authLevel = 6; // admin $userid = false; $user = false; $formats = array( 'gen8randombattle' => 'Random Battle', 'gen8ou' => 'OverUsed', 'gen8ubers' => 'Ubers', 'gen8uu' => 'UnderUsed', 'gen8ru' => 'RarelyUsed', 'gen8nu' => 'NeverUsed', 'gen8pu' => 'PU', 'gen8lc' => 'Little Cup', 'gen8monotype' => 'Monotype', 'gen8battlestadiumsingles' => 'Battle Stadium Singles', 'gen8cap' => 'CAP', 'gen8randomdoublesbattle' => 'Random Doubles Battle', 'gen8doublesou' => 'Doubles OU', 'gen8vgc2020' => 'VGC 2020', 'gen8balancedhackmons' => 'Balanced Hackmons', 'gen8mixandmega' => 'Mix and Mega', 'gen8almostanyability' => 'Almost Any Ability', 'gen8stabmons' => 'STABmons', 'gen8nfe' => 'NFE', 'gen7randombattle' => '[Gen 7] Random Battle', 'gen7ou' => '[Gen 7] OU', 'gen6randombattle' => '[Gen 6] Random Battle', 'gen6ou' => '[Gen 6] OU', 'gen5randombattle' => '[Gen 5] Random Battle', 'gen5ou' => '[Gen 5] OU', 'gen4ou' => '[Gen 4] OU', 'gen3ou' => '[Gen 3] OU', 'gen2ou' => '[Gen 2] OU', 'gen1ou' => '[Gen 1] OU', ); if (isset($_REQUEST['user']) && strlen($_REQUEST['user'])) { $userid = $users->userid($_REQUEST['user']); // 0 is falsy // I'm hardcoding here to fix a crash, but the rest of the system // should continue to reject 0 as a valid userid if ($_REQUEST['user'] === '0') $userid = '0'; if (!strlen($userid)) { header('HTTP/1.1 404 Not Found'); die("Invalid userid"); } $user = $users->getUser($userid); if (substr($_SERVER['REQUEST_URI'], 0, 13) === '/users/?user=') { // really wish this could be done with mod_rewrite header('Location: https://' . $psconfig['routes']['users'] . '/'.$userid); die(); } if (!$user || $user['banstate'] == 100) { if ($panels->output !== 'html') header('HTTP/1.1 404 Not Found'); if (!$user) { $user = [ 'username' => $userid, 'userid' => $userid, 'group' => 0, ]; } } } if ($authLevel >= 3) { //file_put_contents(__DIR__ . '/../config/altaccesslog.txt', "{$curuser['username']} - $userid\n", FILE_APPEND); } if (isset($_REQUEST['json'])) { header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); if (!$user) die('null'); $ladder = new NTBBLadder(''); $ladder->getAllRatings($user); $ratings = []; foreach ($user['ratings'] as $rating) { $ratings[$rating['formatid']] = [ 'elo' => $rating['elo'], 'gxe' => $rating['gxe'], 'rpr' => $rating['rpr'], 'rprd' => $rating['rprd'], ]; } echo json_encode([ 'username' => $user['username'], 'userid' => $user['userid'], 'registertime' => intval(@$user['registertime']/(60*60*24))*60*60*24, 'group' => intval($user['group'] ?? 0), 'ratings' => $ratings, ], JSON_FORCE_OBJECT); die(); } if (!$user) { $panels->setPageTitle('Users'); $panels->setPageDescription('Pokémon Showdown users'); } else { $panels->setPageTitle(''.$user['username'].' - Users'); $panels->setPageDescription(''.$user['username'].'\'s user profile'); } $panels->setTab('ladder'); $panels->start(); if (!$user) { ?>
Group updated
Standing updated
1) echo '' ?>Ladder record swapped
Login method updated
Use this link:
https://= $psconfig['routes']['root'] ?>/resetpassword/
Dummy user created; Standing updated
(Account disabled)= 2) echo ' (Usermodlog)'; ?>
(Banned indefinitely)
Joined: = 2) echo ' (Usermodlog)'; ?>
getGroupName($user); $groupSymbol = $users->getGroupSymbol($user); if ($groupSymbol === '~' || $groupSymbol === '&') { ?>
Joined: = 2) echo ' (Usermodlog)'; ?>
(Unregistered)
;_;7'; } // Ladder if ($user['userid'] === $curuser['userid']) { if ($users->csrfCheck() && @$_POST['resetLadder']) { $formatLadder = new NTBBLadder(@$_POST['resetLadder']); if (substr($formatLadder->formatid, -7) !== 'current' && substr($formatLadder->formatid, -11) !== 'suspecttest') { $formatLadder->clearWL($curuser); } } } if ((@$user['banstate'] != 100 && @$user['banstate'] != 30) || $authLevel >= 4) { $ladder = new NTBBLadder(''); $ladder->getAllRatings($user); } $bufs = ['official' => '', 'unofficial' => '']; if (@$user['ratings']) foreach (@$user['ratings'] as $row) { if ($row['w'] + $row['l'] + $row['t'] == 0 && $row['elo'] < 1050) continue; $buftype = isset($formats[$row['formatid']])?'official':'unofficial'; $bufs[$buftype] .= '| Official ladder | Elo | GXE | Glicko-1 | W | L |
|---|---|---|---|---|---|
| Unofficial ladder | Elo | GXE | Glicko-1 | W | L |