fix missing management of loading and unloading plugins
This commit is contained in:
@ -14,6 +14,7 @@ use ManiaControl\Callbacks\Structures\TrackMania\OnWayPointEventStructure;
|
|||||||
use ManiaControl\Callbacks\TimerListener;
|
use ManiaControl\Callbacks\TimerListener;
|
||||||
use ManiaControl\Manialinks\ManialinkPageAnswerListener;
|
use ManiaControl\Manialinks\ManialinkPageAnswerListener;
|
||||||
use ManiaControl\Players\Player;
|
use ManiaControl\Players\Player;
|
||||||
|
use ManiaControl\Plugins\PluginManager;
|
||||||
use ManiaControl\Plugins\PluginMenu;
|
use ManiaControl\Plugins\PluginMenu;
|
||||||
|
|
||||||
if (!class_exists('MatchManagerSuite\MatchManagerCore')) {
|
if (!class_exists('MatchManagerSuite\MatchManagerCore')) {
|
||||||
@ -114,6 +115,8 @@ class MatchManagerECircuitMania implements CallbackListener, ManialinkPageAnswer
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->maniaControl->getCallbackManager()->registerCallbackListener(PluginManager::CB_PLUGIN_LOADED, $this, 'handlePluginLoaded');
|
||||||
|
$this->maniaControl->getCallbackManager()->registerCallbackListener(PluginManager::CB_PLUGIN_UNLOADED, $this, 'handlePluginUnloaded');
|
||||||
$this->maniaControl->getCallbackManager()->registerScriptCallbackListener(self::CB_STARTMAP, $this, 'handleStartMap');
|
$this->maniaControl->getCallbackManager()->registerScriptCallbackListener(self::CB_STARTMAP, $this, 'handleStartMap');
|
||||||
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::MP_STARTROUNDSTART, $this, 'handleStartRound');
|
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::MP_STARTROUNDSTART, $this, 'handleStartRound');
|
||||||
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::TM_ONWAYPOINT, $this, 'handleOnWaypoint');
|
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::TM_ONWAYPOINT, $this, 'handleOnWaypoint');
|
||||||
@ -161,6 +164,22 @@ class MatchManagerECircuitMania implements CallbackListener, ManialinkPageAnswer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* handlePluginUnloaded
|
||||||
|
*
|
||||||
|
* @param string $pluginClass
|
||||||
|
* @param Plugin $plugin
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handlePluginUnloaded(string $pluginClass, Plugin $plugin) {
|
||||||
|
if ($pluginClass == self::MATCHMANAGERCORE_PLUGIN) {
|
||||||
|
$this->maniaControl->getChat()->sendErrorToAdmins(self::PLUGIN_NAME . " disabled because MatchManager Core is now disabled");
|
||||||
|
$this->log(self::PLUGIN_NAME . " disabled because MatchManager Core is now disabled");
|
||||||
|
$this->maniaControl->getPluginManager()->deactivatePlugin((get_class($this)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add items in AdminUI plugin
|
* Add items in AdminUI plugin
|
||||||
*/
|
*/
|
||||||
@ -353,5 +372,11 @@ class MatchManagerECircuitMania implements CallbackListener, ManialinkPageAnswer
|
|||||||
/**
|
/**
|
||||||
* Unload the plugin and its Resources
|
* Unload the plugin and its Resources
|
||||||
*/
|
*/
|
||||||
public function unload() {}
|
public function unload() {
|
||||||
|
/** @var \MatchManagerSuite\MatchManagerAdminUI|null */
|
||||||
|
$adminUIPlugin = $this->maniaControl->getPluginManager()->getPlugin(self::MATCHMANAGERADMINUI_PLUGIN);
|
||||||
|
if ($adminUIPlugin !== null) {
|
||||||
|
$adminUIPlugin->removeMenuItem(self::ML_ACTION_OPENSETTINGS);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user