diff --git a/MatchManagerSuite/MatchManagerCore.php b/MatchManagerSuite/MatchManagerCore.php index 530dc77..aecf582 100644 --- a/MatchManagerSuite/MatchManagerCore.php +++ b/MatchManagerSuite/MatchManagerCore.php @@ -442,7 +442,6 @@ class MatchManagerCore implements CallbackListener, CommandListener, TimerListen $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'handlePlayerDisconnect'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::TM_SCORES, $this, 'handleTrackmaniaScore'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::MP_STARTROUNDSTART, $this, 'handleBeginRoundCallback'); - $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::MP_ENDROUNDEND, $this, 'handleEndRoundCallback'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::TM_WARMUPSTARTROUND, $this, 'handleStartWarmUpCallback'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::MP_STARTMATCHSTART, $this, 'handleStartMatchStartCallback'); $this->maniaControl->getCallbackManager()->registerCallbackListener(CallbackManager::CB_MP_BEGINMAP, $this, 'handleBeginMapCallback'); @@ -456,21 +455,6 @@ class MatchManagerCore implements CallbackListener, CommandListener, TimerListen $this->maniaControl->getCommunicationManager()->registerCommunicationListener("Match.GetMatchOptions", $this, function () { return new CommunicationAnswer($this->getGMSettings($this->currentgmbase,$this->currentcustomgm)); }); } - public function handleEndRoundCallback(StartEndStructure $structure) { - Logger::log("handleEndRoundCallback"); - - if (defined("\ManiaControl\ManiaControl::ISTRACKMANIACONTROL") && method_exists($structure, "getValidRoundCount")) { - $this->nbrounds = $structure->getValidRoundCount(); - } else if (property_exists($structure->getPlainJsonObject(), "valid")) { - $this->nbrounds = $structure->getPlainJsonObject()->valid; - } else { - $this->nbrounds = $structure->getCount(); - } - - Logger::log("Rounds finished: " . $this->nbrounds); - $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_MATCHMANAGER_ENDROUND, $this->matchid, $this->currentscore, $this->currentteamsscore); - } - /** * @see \ManiaControl\Plugins\Plugin::unload() */ @@ -1523,10 +1507,19 @@ class MatchManagerCore implements CallbackListener, CommandListener, TimerListen /** * Handle callback "BeginRound" */ - public function handleBeginRoundCallback() { + public function handleBeginRoundCallback(StartEndStructure $structure) { Logger::log("handleBeginRoundCallback"); if ($this->matchStarted && $this->nbmaps > 0) { + + if (defined("\ManiaControl\ManiaControl::ISTRACKMANIACONTROL") && method_exists($structure, "getValidRoundCount")) { + $this->nbrounds = $structure->getValidRoundCount(); + } else if (property_exists($structure->getPlainJsonObject(), "valid")) { + $this->nbrounds = $structure->getPlainJsonObject()->valid; + } else { + $this->nbrounds = $structure->getCount(); + } + if (in_array($this->currentgmbase, ["Cup", "Teams", "Rounds"])) { $this->maniaControl->getModeScriptEventManager()->getPauseStatus()->setCallable(function (StatusCallbackStructure $structure) { if ($structure->getActive()) { @@ -1534,8 +1527,8 @@ class MatchManagerCore implements CallbackListener, CommandListener, TimerListen Logger::log("Pause"); } else { if ($this->settings_nbroundsbymap > 1) { - $this->maniaControl->getChat()->sendInformation($this->chatprefix . '$o$iRound: ' . ($this->nbrounds + 1) . ' / ' . $this->settings_nbroundsbymap); - Logger::log("Round: " . ($this->nbrounds + 1) . ' / ' . $this->settings_nbroundsbymap); + $this->maniaControl->getChat()->sendInformation($this->chatprefix . '$o$iRound: ' . $this->nbrounds . ' / ' . $this->settings_nbroundsbymap); + Logger::log("Round: " . $this->nbrounds . ' / ' . $this->settings_nbroundsbymap); } } }); @@ -1704,6 +1697,9 @@ class MatchManagerCore implements CallbackListener, CommandListener, TimerListen trigger_error($mysqli->error); } } + + Logger::log("Rounds finished: " . $this->nbrounds); + $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_MATCHMANAGER_ENDROUND, $this->matchid, $this->currentscore, $this->currentteamsscore); } } return true;