maniaControl = $maniaControl; return; $this->openSession(); } private function openSession() { //$serverLogin = $this->maniaControl->server->login; $serverLogin = ".escsiege"; $applicationIdentifier = 'ManiaControl v' . ManiaControl::VERSION; $testMode = 'true'; $query = self::MX_KARMA_URL . self::MX_KARMA_STARTSESSION; $query .= '?serverLogin=' . $serverLogin; $query .= '&applicationIdentifier=' . urlencode($applicationIdentifier); $query .= '&game=sm'; $query .= '&testMode=' . $testMode; $this->maniaControl->fileReader->loadFile($query, function ($data, $error) { var_dump($error); if (!$error) { $data = json_decode($data); if ($data->success) { $this->activateSession($data->data->sessionKey, $data->data->sessionSeed); } else { $this->maniaControl->log("Error while authenticating on Mania-Exchange Karma"); } } else { $this->maniaControl->log($error); } }, "application/json", 1000); } private function activateSession($sessionKey, $sessionSeed) { $hash = $this->buildActivationHash($sessionSeed, "XNTOWRNVQCKEUBBKXNJSCPYOAA"); $query = self::MX_KARMA_URL . self::MX_KARMA_ACTIVATESESSION; $query .= '?sessionKey=' . urlencode($sessionKey); $query .= '&activationHash=' . urlencode($hash); var_dump($query); $this->maniaControl->fileReader->loadFile($query, function ($data, $error) { if (!$error) { $data = json_decode($data); if (!$data->activated) { $this->maniaControl->log("Error while authenticating on Mania-Exchange Karma"); } else { $this->maniaControl->log("Successfully authenticated on Mania-Exchange Karma"); } } else { $this->maniaControl->log($error); } }, "application/json", 1000); } private function buildActivationHash($sessionSeed, $mxKey) { return hash('sha512', $mxKey . $sessionSeed); } /** * Unload the plugin and its resources */ public function unload() { unset($this->maniaControl); } /** * Get plugin id * * @return int */ public static function getId() { // TODO: Implement getId() method. } /** * Get Plugin Name * * @return string */ public static function getName() { return "karmatest"; } /** * Get Plugin Version * * @return float */ public static function getVersion() { // TODO: Implement getVersion() method. } /** * Get Plugin Author * * @return string */ public static function getAuthor() { // TODO: Implement getAuthor() method. } /** * Get Plugin Description * * @return string */ public static function getDescription() { // TODO: Implement getDescription() method. } }