fix race condition of the nbround and the nbmaps
This commit is contained in:
parent
89ce4f0d61
commit
a1cdbe93e2
@ -35,7 +35,7 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis
|
|||||||
* Constants
|
* Constants
|
||||||
*/
|
*/
|
||||||
const PLUGIN_ID = 156;
|
const PLUGIN_ID = 156;
|
||||||
const PLUGIN_VERSION = 1.5;
|
const PLUGIN_VERSION = 1.6;
|
||||||
const PLUGIN_NAME = 'MatchManager GSheet';
|
const PLUGIN_NAME = 'MatchManager GSheet';
|
||||||
const PLUGIN_AUTHOR = 'Beu';
|
const PLUGIN_AUTHOR = 'Beu';
|
||||||
|
|
||||||
@ -95,6 +95,7 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis
|
|||||||
private $maniaControl = null;
|
private $maniaControl = null;
|
||||||
private $MatchManagerCore = null;
|
private $MatchManagerCore = null;
|
||||||
private $matchstatus = "";
|
private $matchstatus = "";
|
||||||
|
private $chatprefix = '$<$fc3$w🏆$m$> '; // Would like to create a setting but MC database doesn't support utf8mb4
|
||||||
private $device_code = "";
|
private $device_code = "";
|
||||||
private $access_token = "";
|
private $access_token = "";
|
||||||
private $matchid = "";
|
private $matchid = "";
|
||||||
@ -509,13 +510,16 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis
|
|||||||
$data->data[3] = new \stdClass;
|
$data->data[3] = new \stdClass;
|
||||||
$data->data[3]->range = "'" . $sheetname . "'!" . self::MODE_SPECIFICS_SETTINGS[$this->currentdatamode]["TeamsScoreTable_BeginLetter"] . "2";
|
$data->data[3]->range = "'" . $sheetname . "'!" . self::MODE_SPECIFICS_SETTINGS[$this->currentdatamode]["TeamsScoreTable_BeginLetter"] . "2";
|
||||||
$data->data[3]->values = $currentteamsscore;
|
$data->data[3]->values = $currentteamsscore;
|
||||||
|
} else {
|
||||||
|
$nbmaps = $this->MatchManagerCore->getMapNumber();
|
||||||
|
$nbrounds = $this->MatchManagerCore->getRoundNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
$asyncHttpRequest = new AsyncHttpRequest($this->maniaControl, 'https://sheets.googleapis.com/v4/spreadsheets/' . $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCHMANAGERGSHEET_SPREADSHEET) . '/values:batchUpdate');
|
$asyncHttpRequest = new AsyncHttpRequest($this->maniaControl, 'https://sheets.googleapis.com/v4/spreadsheets/' . $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCHMANAGERGSHEET_SPREADSHEET) . '/values:batchUpdate');
|
||||||
$asyncHttpRequest->setContentType(AsyncHttpRequest::CONTENT_TYPE_JSON);
|
$asyncHttpRequest->setContentType(AsyncHttpRequest::CONTENT_TYPE_JSON);
|
||||||
$asyncHttpRequest->setHeaders(array("Authorization: Bearer " . $this->access_token));
|
$asyncHttpRequest->setHeaders(array("Authorization: Bearer " . $this->access_token));
|
||||||
$asyncHttpRequest->setContent(json_encode($data));
|
$asyncHttpRequest->setContent(json_encode($data));
|
||||||
$asyncHttpRequest->setCallable(function ($json, $error) use ($sheetname, $currentscore, $currentteamsscore, $matchstatus) {
|
$asyncHttpRequest->setCallable(function ($json, $error) use ($sheetname, $currentscore, $currentteamsscore, $matchstatus, $nbmaps, $nbrounds) {
|
||||||
if (!$json || $error) {
|
if (!$json || $error) {
|
||||||
Logger::logError('Error from Google API: ' . $error);
|
Logger::logError('Error from Google API: ' . $error);
|
||||||
$this->maniaControl->getChat()->sendErrorToAdmins('Error from Google API: ' . $error);
|
$this->maniaControl->getChat()->sendErrorToAdmins('Error from Google API: ' . $error);
|
||||||
@ -531,7 +535,7 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis
|
|||||||
if ($this->currentdatamode == "All Rounds Data" && $matchstatus == "running") {
|
if ($this->currentdatamode == "All Rounds Data" && $matchstatus == "running") {
|
||||||
$newcurrentscore = [];
|
$newcurrentscore = [];
|
||||||
foreach ($currentscore as $score) {
|
foreach ($currentscore as $score) {
|
||||||
array_push($newcurrentscore,array_merge([$this->MatchManagerCore->getMapNumber() , $this->MatchManagerCore->getRoundNumber()], $score));
|
array_push($newcurrentscore,array_merge([$nbmaps, $nbrounds], $score));
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = new \stdClass;
|
$data = new \stdClass;
|
||||||
@ -543,7 +547,7 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis
|
|||||||
$asyncHttpRequest->setContentType(AsyncHttpRequest::CONTENT_TYPE_JSON);
|
$asyncHttpRequest->setContentType(AsyncHttpRequest::CONTENT_TYPE_JSON);
|
||||||
$asyncHttpRequest->setHeaders(array("Authorization: Bearer " . $this->access_token));
|
$asyncHttpRequest->setHeaders(array("Authorization: Bearer " . $this->access_token));
|
||||||
$asyncHttpRequest->setContent(json_encode($data));
|
$asyncHttpRequest->setContent(json_encode($data));
|
||||||
$asyncHttpRequest->setCallable(function ($json, $error) use ($sheetname, $currentscore, $currentteamsscore) {
|
$asyncHttpRequest->setCallable(function ($json, $error) use ($sheetname, $currentteamsscore, $nbmaps, $nbrounds) {
|
||||||
if (!$json || $error) {
|
if (!$json || $error) {
|
||||||
Logger::logError('Error from Google API: ' . $error);
|
Logger::logError('Error from Google API: ' . $error);
|
||||||
$this->maniaControl->getChat()->sendErrorToAdmins('Error from Google API: ' . $error);
|
$this->maniaControl->getChat()->sendErrorToAdmins('Error from Google API: ' . $error);
|
||||||
@ -559,7 +563,7 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis
|
|||||||
if (!empty($currentteamsscore)) {
|
if (!empty($currentteamsscore)) {
|
||||||
$newcurrentteamsscore = [];
|
$newcurrentteamsscore = [];
|
||||||
foreach ($currentteamsscore as $score) {
|
foreach ($currentteamsscore as $score) {
|
||||||
array_push($newcurrentteamsscore,array_merge([$this->MatchManagerCore->getMapNumber() , $this->MatchManagerCore->getRoundNumber()], $score));
|
array_push($newcurrentteamsscore,array_merge([$nbmaps, $nbrounds], $score));
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = new \stdClass;
|
$data = new \stdClass;
|
||||||
|
Loading…
Reference in New Issue
Block a user