update improvement for plugin files which had no matching names (if theres a new update available, the file will be deleted, theres a log written that you should restart MC and than install the new version).

This commit is contained in:
kremsy
2017-05-13 11:50:50 +02:00
parent 6908ff36e4
commit 6eca102233
2 changed files with 25 additions and 7 deletions

View File

@ -257,7 +257,7 @@ class PluginUpdateManager implements CallbackListener, CommandListener, TimerLis
Logger::logError($message);
return;
}
$asyncHttpRequest = new AsyncHttpRequest($this->maniaControl, $pluginUpdateData->url);
$asyncHttpRequest->setCallable(function ($updateFileContent, $error) use (
&$pluginUpdateData, &$player, &$update
@ -322,8 +322,9 @@ class PluginUpdateManager implements CallbackListener, CommandListener, TimerLis
if (!$update) {
$newPluginClasses = $this->maniaControl->getPluginManager()->loadPlugins();
if (empty($newPluginClasses)) {
$message = "Loading fresh installed Plugin '{$pluginUpdateData->pluginName}' failed!";
$message = "Loading fresh installed Plugin '{$pluginUpdateData->pluginName}' failed, try to restart ManiaControl!";
if ($player) {
$this->maniaControl->getChat()->sendError($message, $player);
}
@ -405,10 +406,15 @@ class PluginUpdateManager implements CallbackListener, CommandListener, TimerLis
* Check given Plugin Class for Update
*
* @param string $pluginClass
* @param bool $skipPluginClassFetch
* @return mixed
*/
public function getPluginUpdate($pluginClass) {
$pluginClass = PluginManager::getPluginClass($pluginClass);
**/
public static function getPluginUpdate($pluginClass, $skipPluginClassFetch = false) {
if (!$skipPluginClassFetch) {
//Used to avoid recursion in the isPluginClass Method
$pluginClass = PluginManager::getPluginClass($pluginClass);
}
/** @var Plugin $pluginClass */
$pluginId = $pluginClass::getId();
$url = ManiaControl::URL_WEBSERVICE . 'plugins/' . $pluginId;
@ -420,7 +426,8 @@ class PluginUpdateManager implements CallbackListener, CommandListener, TimerLis
}
$pluginUpdateData = new PluginUpdateData($pluginVersion);
$version = $pluginClass::getVersion();
if ($pluginUpdateData->isNewerThan($version)) {
if ($pluginUpdateData->isNewerThan($version) && $pluginUpdateData->minManiaControlVersion >= ManiaControl::VERSION) {
return $pluginUpdateData;
}
return false;