PluginManager: Log an error message when a plugin disables itself during enabling

This commit is contained in:
Dylan K. Taylor 2022-05-11 13:07:45 +01:00
parent 3e1246acff
commit 212c94ce98
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
5 changed files with 28 additions and 8 deletions

View File

@ -41,7 +41,7 @@
"pocketmine/classloader": "^0.2.0",
"pocketmine/color": "^0.2.0",
"pocketmine/errorhandler": "^0.6.0",
"pocketmine/locale-data": "~2.6.0",
"pocketmine/locale-data": "~2.7.0",
"pocketmine/log": "^0.4.0",
"pocketmine/log-pthreads": "^0.4.0",
"pocketmine/math": "^0.4.0",

14
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "1987b70747167a4b099962f485f46bf4",
"content-hash": "c36ed8a47610c2fc26dfab18085c431c",
"packages": [
{
"name": "adhocore/json-comment",
@ -536,16 +536,16 @@
},
{
"name": "pocketmine/locale-data",
"version": "2.6.2",
"version": "2.7.0",
"source": {
"type": "git",
"url": "https://github.com/pmmp/Language.git",
"reference": "eae9303493884edcc5321b50002a5dc956a36a23"
"reference": "f00216c4709d2c5a2af478498315206b336b8e2e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/pmmp/Language/zipball/eae9303493884edcc5321b50002a5dc956a36a23",
"reference": "eae9303493884edcc5321b50002a5dc956a36a23",
"url": "https://api.github.com/repos/pmmp/Language/zipball/f00216c4709d2c5a2af478498315206b336b8e2e",
"reference": "f00216c4709d2c5a2af478498315206b336b8e2e",
"shasum": ""
},
"type": "library",
@ -553,9 +553,9 @@
"description": "Language resources used by PocketMine-MP",
"support": {
"issues": "https://github.com/pmmp/Language/issues",
"source": "https://github.com/pmmp/Language/tree/2.6.2"
"source": "https://github.com/pmmp/Language/tree/2.7.0"
},
"time": "2022-04-10T20:44:40+00:00"
"time": "2022-05-10T13:29:27+00:00"
},
{
"name": "pocketmine/log",

View File

@ -1759,6 +1759,13 @@ final class KnownTranslationFactory{
]);
}
public static function pocketmine_plugin_enableError(Translatable|string $param0, Translatable|string $param1) : Translatable{
return new Translatable(KnownTranslationKeys::POCKETMINE_PLUGIN_ENABLEERROR, [
0 => $param0,
1 => $param1,
]);
}
public static function pocketmine_plugin_extensionNotLoaded(Translatable|string $extensionName) : Translatable{
return new Translatable(KnownTranslationKeys::POCKETMINE_PLUGIN_EXTENSIONNOTLOADED, [
"extensionName" => $extensionName,
@ -1859,6 +1866,10 @@ final class KnownTranslationFactory{
]);
}
public static function pocketmine_plugin_suicide() : Translatable{
return new Translatable(KnownTranslationKeys::POCKETMINE_PLUGIN_SUICIDE, []);
}
public static function pocketmine_plugin_unknownDependency(Translatable|string $param0) : Translatable{
return new Translatable(KnownTranslationKeys::POCKETMINE_PLUGIN_UNKNOWNDEPENDENCY, [
0 => $param0,

View File

@ -368,6 +368,7 @@ final class KnownTranslationKeys{
public const POCKETMINE_PLUGIN_DUPLICATEPERMISSIONERROR = "pocketmine.plugin.duplicatePermissionError";
public const POCKETMINE_PLUGIN_EMPTYEXTENSIONVERSIONCONSTRAINT = "pocketmine.plugin.emptyExtensionVersionConstraint";
public const POCKETMINE_PLUGIN_ENABLE = "pocketmine.plugin.enable";
public const POCKETMINE_PLUGIN_ENABLEERROR = "pocketmine.plugin.enableError";
public const POCKETMINE_PLUGIN_EXTENSIONNOTLOADED = "pocketmine.plugin.extensionNotLoaded";
public const POCKETMINE_PLUGIN_GENERICLOADERROR = "pocketmine.plugin.genericLoadError";
public const POCKETMINE_PLUGIN_INCOMPATIBLEAPI = "pocketmine.plugin.incompatibleAPI";
@ -385,6 +386,7 @@ final class KnownTranslationKeys{
public const POCKETMINE_PLUGIN_MAINCLASSWRONGTYPE = "pocketmine.plugin.mainClassWrongType";
public const POCKETMINE_PLUGIN_RESTRICTEDNAME = "pocketmine.plugin.restrictedName";
public const POCKETMINE_PLUGIN_SPACESDISCOURAGED = "pocketmine.plugin.spacesDiscouraged";
public const POCKETMINE_PLUGIN_SUICIDE = "pocketmine.plugin.suicide";
public const POCKETMINE_PLUGIN_UNKNOWNDEPENDENCY = "pocketmine.plugin.unknownDependency";
public const POCKETMINE_SAVE_START = "pocketmine.save.start";
public const POCKETMINE_SAVE_SUCCESS = "pocketmine.save.success";

View File

@ -447,6 +447,13 @@ class PluginManager{
$this->enabledPlugins[$plugin->getDescription()->getName()] = $plugin;
(new PluginEnableEvent($plugin))->call();
}else{
$this->server->getLogger()->critical($this->server->getLanguage()->translate(
KnownTranslationFactory::pocketmine_plugin_enableError(
$plugin->getName(),
KnownTranslationFactory::pocketmine_plugin_suicide()
)
));
}
}
}