From 9fda8274b48f9729583a104d668aa9654e056765 Mon Sep 17 00:00:00 2001 From: beu Date: Thu, 20 Mar 2025 22:43:56 +0100 Subject: [PATCH] prevent sending data when sheetname is empty --- MatchManagerSuite/MatchManagerGSheet.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/MatchManagerSuite/MatchManagerGSheet.php b/MatchManagerSuite/MatchManagerGSheet.php index 04c64dc..2817ea8 100644 --- a/MatchManagerSuite/MatchManagerGSheet.php +++ b/MatchManagerSuite/MatchManagerGSheet.php @@ -39,7 +39,7 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis * Constants */ const PLUGIN_ID = 156; - const PLUGIN_VERSION = 2.2; + const PLUGIN_VERSION = 2.3; const PLUGIN_NAME = 'MatchManager GSheet'; const PLUGIN_AUTHOR = 'Beu'; @@ -588,6 +588,9 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis $spreadsheetid = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCHMANAGERGSHEET_SPREADSHEET); if ($spreadsheetid === "") return; + $sheetname = $this->getSheetName(); + if ($sheetname === "") return; + foreach ($currentscore as $key => $score) { $name = "~"; $player = $this->maniaControl->getPlayerManager()->getPlayer($score[1]); @@ -599,8 +602,6 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis $matchstatus = $this->matchstatus; if ($this->refreshTokenIfNeeded()) { - $sheetname = $this->getSheetName(); - $data = new \stdClass; $data->valueInputOption = "RAW"; @@ -748,12 +749,15 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis $spreadsheetid = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCHMANAGERGSHEET_SPREADSHEET); if ($spreadsheetid === "") return; + $sheetname = $this->getSheetName(); + if ($sheetname === "") return; + if ($this->refreshTokenIfNeeded()) { $this->matchid = $matchid; $asyncHttpRequest = new AsyncHttpRequest($this->maniaControl, 'https://sheets.googleapis.com/v4/spreadsheets/' . $spreadsheetid); $asyncHttpRequest->setContentType(AsyncHttpRequest::CONTENT_TYPE_JSON); $asyncHttpRequest->setHeaders(array("Authorization: Bearer " . $this->access_token)); - $asyncHttpRequest->setCallable(function ($json, $error) { + $asyncHttpRequest->setCallable(function ($json, $error) use ($sheetname) { if (!$json || $error) { Logger::logError('Error from Google API: ' . $error); $this->maniaControl->getChat()->sendErrorToAdmins('Error from Google API: ' . $error); @@ -773,7 +777,6 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis if ($data->properties->title) { $sheetsid = array(); - $sheetname = $this->getSheetName(); $sheetexists = false; foreach($data->sheets as $value) { if ($value->properties->title == $sheetname) { @@ -798,6 +801,7 @@ class MatchManagerGSheet implements CallbackListener, TimerListener, CommandLis } private function PrepareSheet(String $sheetname, bool $sheetexists, Array $sheetsid) { + if ($sheetname === "") return; $spreadsheetid = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MATCHMANAGERGSHEET_SPREADSHEET); if ($spreadsheetid === "") return;