scopeTo('cauth'), $authToken); $users = new Users($db); if($authInfo->success) { $users->syncChatUser($authInfo); $userInfo = $users->getUser($authInfo->user_id); } else $userInfo = null; $csrfp = new CSRFP( $cfg->getString('csrfp:secret', 'wowof'), $authInfo->success ? $authToken : $_SERVER['REMOTE_ADDR'] ); $templating = new SasaeEnvironment(MCR_DIR_TPL, ['Mince'], debug: MCR_DEBUG); $templating->addGlobal('globals', [ 'title' => 'Flashii Minecraft Servers', 'is_authed' => $userInfo !== null, 'user' => $userInfo, 'csrfp' => $csrfp->createToken(), ]); $accountLinks = new AccountLinks($db); $authorisations = new Authorisations($db); $authorisations->prune(); $verifications = new Verifications($db); $verifications->prune(); $router = new HttpFx; $router->use('/', function($response, $request) { $response->setPoweredBy('Mince'); }); $router->setDefaultErrorHandler(function($response, $request, $code, $text) use ($templating) { $response->setContent($templating->render('http-error', [ 'error' => [ 'code' => sprintf('%03d', $code), 'text' => $text, ], ])); }); (new RpcRoutes($users, $accountLinks, $authorisations, $verifications, $cfg->getString('rpc:secret'), $cfg->getString('urls:clients')))->register($router); (new HomeRoutes($templating, new Servers($db), $authInfo, $cfg->getString('site:login')))->register($router); (new ClientsRoutes($templating, $accountLinks, $authorisations, $verifications, $csrfp, $authInfo))->register($router); (new SkinsRoutes($templating, $accountLinks, new Skins($db), new Capes($db), $csrfp, $authInfo, $cfg->getString('urls:skins_base')))->register($router); MojangInterop::registerRoutes($router); $router->dispatch();