PluginManager: account for possible invalid format of API version

we're seeing a lot of crashes because of this.
This commit is contained in:
Dylan K. Taylor
2021-10-05 18:36:00 +01:00
parent 0ad663ff50
commit 7d06b76aaf
5 changed files with 23 additions and 1 deletions

View File

@@ -40,6 +40,7 @@ use pocketmine\Server;
use pocketmine\timings\TimingsHandler;
use pocketmine\utils\AssumptionFailedError;
use pocketmine\utils\Utils;
use pocketmine\utils\VersionString;
use Webmozart\PathUtil\Path;
use function array_intersect;
use function array_merge;
@@ -268,6 +269,16 @@ class PluginManager{
continue;
}
foreach($description->getCompatibleApis() as $api){
if(!VersionString::isValidBaseVersion($api)){
$this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError(
$name,
KnownTranslationFactory::pocketmine_plugin_invalidAPI($api)
)));
continue 2;
}
}
if(!ApiVersion::isCompatible($this->server->getApiVersion(), $description->getCompatibleApis())){
$this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError(
$name,