Dedimania Challenge record set fix
This commit is contained in:
1 parent
84af711e5d
commit
89fdba15ed
2 files changed
+33
-9
No files matched your search
@@ -135,7 +135,6 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
||||
throw new \Exception("This Plugin is only for Trackmania!");
|
||||
}
|
||||
|
||||
|
||||
$maxRecords = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAX_RECORDS);
|
||||
|
||||
$dedimaniaData = new DedimaniaData($serverInfo->login, $dedimaniaCode, $serverInfo->path, $packMask, $serverVersion);
|
||||
@@ -249,6 +248,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
||||
* @internal
|
||||
*/
|
||||
public function handleBeginMap() {
|
||||
$this->checkpoints = null;
|
||||
$this->webHandler->getDedimaniaData()->unsetRecords();
|
||||
$this->webHandler->maniaLinkUpdateNeeded();
|
||||
$this->webHandler->fetchDedimaniaRecords(true);
|
||||
|
||||
@@ -168,7 +168,7 @@ class DedimaniaWebHandler implements TimerListener {
|
||||
}
|
||||
|
||||
if ($record->vReplay == '' || !$record->vReplay) {
|
||||
Logger::logInfo("Ignore time for " . $record->login . " no validation replay found");
|
||||
Logger::logInfo("Dedimania Ignore time for " . $record->login . " no validation replay found");
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -178,13 +178,14 @@ class DedimaniaWebHandler implements TimerListener {
|
||||
if (!isset($replays['VReplay'])) {
|
||||
$replays['VReplay'] = $record->vReplay;
|
||||
}
|
||||
if (!isset($replays['Top1GReplay'])) {
|
||||
$replays['Top1GReplay'] = $record->top1GReplay;
|
||||
}
|
||||
|
||||
if (!isset($replays['VReplayChecks'])) {
|
||||
$replays['VReplayChecks'] = '';
|
||||
// TODO: VReplayChecks
|
||||
}
|
||||
if (!isset($replays['Top1GReplay'])) {
|
||||
$replays['Top1GReplay'] = $record->top1GReplay;
|
||||
}
|
||||
}
|
||||
|
||||
xmlrpc_set_type($replays['VReplay'], 'base64');
|
||||
@@ -260,9 +261,28 @@ class DedimaniaWebHandler implements TimerListener {
|
||||
return;
|
||||
}
|
||||
|
||||
//var_dump($this->dedimaniaData->sessionId);
|
||||
|
||||
$this->addRequest(self::DEDIMANIA_WARNINGSANDTTR2, array());
|
||||
|
||||
$content = xmlrpc_encode_request(self::XMLRPC_MULTICALL, array($this->requests), array('encoding' => 'UTF-8', 'escaping' => 'markup', 'verbosity' => 'no_white_space'));
|
||||
$content = xmlrpc_encode_request(self::XMLRPC_MULTICALL, array($this->requests), array('encoding' => 'UTF-8', 'escaping' => 'cdata, non-ascii, non-print, markup', 'verbosity' => 'no_white_space'));
|
||||
|
||||
|
||||
/* $content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><methodCall><methodName>system.multicall</methodName>
|
||||
<params>
|
||||
<param><value><array><data><value><struct><member><name>methodName</name><value>
|
||||
<string>dedimania.SetChallengeTimes</string></value></member>
|
||||
<member><name>params</name><value><array><data><value><string>".$this->dedimaniaData->sessionId."</string></value>
|
||||
<value><struct><member><name>UId</name><value><string>ymBMv4ra0y81UM58_E4qfUpfSOd</string></value></member>
|
||||
<member><name>Name</name><value><string>Sparkster's Canyon B12</string></value></member><member>
|
||||
<name>Environment</name><value><string>Canyon</string></value></member><member><name>Author</name>
|
||||
<value><string>sparkster</string></value></member><member><name>NbCheckpoints</name><value><int>3</int></value></member>
|
||||
<member><name>NbLaps</name><value><int>0</int></value></member></struct></value><value><string>TA</string></value><value><array>
|
||||
<data><value><struct><member><name>Login</name><value><string>kremsy</string></value></member><member><name>Best</name><value>
|
||||
<int>271954</int></value></member><member><name>Checks</name><value><string>9092,17778,271954</string></value></member></struct></value></data></array></value><value><struct><member><name>VReplay</name><value><base64>R0JYBgBCVUNSADAJAwcDAAADAAAAADAJA5IAAAABMAkD2QEAgAIwCQOAAAAACAAAAAMAAAAA AABAGwAAAHltQk12NHJhMHk4MVVNNThfRTRxZlVwZlNPZAwAAAAAAABACQAAAHNwYXJrc3R lclImBAAvAAAA77u/JHokcyRpJDA5Zs+BJDAwMMK7JGFhYW9tYm8gJGZmZkx1ayQwOWbDqS DupaQGAAAAa3JlbXN5AQAAAEAIAAAAVE1DYW55b27VAQAAPGhlYWRlciB0eXBlPSJyZXBsY XkiIGV4ZXZlcj0iMy4zLjAiIGV4ZWJ1aWxkPSIyMDE3LTA1LTE2XzE5XzAwIiB0aXRsZT0i VE1DYW55b24iPjxtYXAgdWlkPSJ5bUJNdjRyYTB5ODFVTTU4X0U0cWZVcGZTT2QiIG5hbWU 9IlNwYXJrc3RlciZhcG9zO3MgQ2FueW9uIEIxMiIgYXV0aG9yPSJzcGFya3N0ZXIiIGF1dG hvcnpvbmU9IldvcmxkfEV1cm9wZXxHZXJtYW55fFJoZWlubGFuZC1QZmFsenxLYWlzZXJzb GF1dGVybiIvPjxkZXNjIGVudmlyPSJDYW55b24iIG1vb2Q9IiIgbWFwdHlwZT0iVHJhY2tt YW5pYVxSYWNlIiBtYXBzdHlsZT0iIiBkaXNwbGF5Y29zdD0iMCIgbW9kPSIiIC8+PHBsYXl lcm1vZGVsIGlkPSJDYW55b25DYXIiLz48dGltZXMgYmVzdD0iMjcxOTU0IiByZXNwYXducz 0iOSIgc3R1bnRzY29yZT0iNTIiIHZhbGlkYWJsZT0iMSIvPjxjaGVja3BvaW50cyBjdXI9I jMiIG9uZWxhcD0iMyIvPjwvaGVhZGVyPgEAAAAAAAAADQAAAHBhcmFnb25jYW55b24wAAAA JHckQURGUCQ5Q0ZhJDdCRnIkN0JGYSQ1QUZnJDJBRm8kMDlGbiRmZmYgQ2FueW9uKwAAAO+ 7v1dvcmxkfEV1cm9wZXxGcmFuY2V8w45sZS1kZS1GcmFuY2V8UGFyaXMAAAAAAgAAAAAAAA BpdQAAqmoAAAAIAjAJA/NZAABHQlgGAEJVQ1IAMAQDAAAAABxwAA0AAAAhawEA0lkAAAYNM AQDZAMH/ykAAAkRMAQDAWQEAOOwAQOMAAUAAAAB3sr6AowCAwUDAbAFA2gBKgwADwSwBQOd 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
Line truncated
|
||||
<name>Top1GReplay</name><value><base64></base64></value></member>
|
||||
</struct></value></data></array></value></member></struct></value><value><struct><member><name>methodName</name><value><string>dedimania.WarningsAndTTR2</string></value></member><member><name>params</name><value><array><data/></array></value></member></struct></value></data></array></value></param></params></methodCall>";
|
||||
*/ //TODO remove debug code later
|
||||
|
||||
$asyncHttpRequest = new AsyncHttpRequest($this->maniaControl, self::DEDIMANIA_URL);
|
||||
$asyncHttpRequest->setCallable(function ($answerData, $error) {
|
||||
@@ -272,6 +292,9 @@ class DedimaniaWebHandler implements TimerListener {
|
||||
return;
|
||||
}
|
||||
|
||||
//var_dump($error);
|
||||
//var_dump($answerData);
|
||||
|
||||
$data = $this->decode($answerData);
|
||||
if(!$data){
|
||||
//TODO just Temporary
|
||||
@@ -279,11 +302,10 @@ class DedimaniaWebHandler implements TimerListener {
|
||||
var_dump($answerData);
|
||||
}
|
||||
|
||||
if (!is_array($data) || empty($data) || !isset($data[0]) || !isset($data[0][0]) || $data[0][0] == false) {
|
||||
if (!is_array($data) || empty($data) || !isset($data[0]) || !isset($data[0][0])) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//Get the Errors and Warnings to get the Method Order
|
||||
$errorsAndWarnings = $data[count($data) - 1][0];
|
||||
$methods = $errorsAndWarnings['methods'];
|
||||
@@ -359,6 +381,8 @@ class DedimaniaWebHandler implements TimerListener {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//exit();
|
||||
});
|
||||
|
||||
$asyncHttpRequest->setContent($content);
|
||||
@@ -456,8 +480,8 @@ class DedimaniaWebHandler implements TimerListener {
|
||||
$mapInfo = array();
|
||||
$mapInfo['UId'] = $map->uid;
|
||||
$mapInfo['Name'] = $map->rawName;
|
||||
$mapInfo['Author'] = $map->authorLogin;
|
||||
$mapInfo['Environment'] = $map->environment;
|
||||
$mapInfo['Author'] = $map->authorLogin;
|
||||
$mapInfo['NbCheckpoints'] = $map->nbCheckpoints;
|
||||
$mapInfo['NbLaps'] = $map->nbLaps;
|
||||
return $mapInfo;
|
||||
|
||||
Reference in new issue
Block a user