mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-07 12:18:46 +00:00
ScriptPluginLoader: use parseDocComment() instead of reinventing the wheel
This commit is contained in:
parent
726c5652f7
commit
472ffb28ff
@ -23,13 +23,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace pocketmine\plugin;
|
namespace pocketmine\plugin;
|
||||||
|
|
||||||
|
use pocketmine\utils\Utils;
|
||||||
|
use function count;
|
||||||
use function file;
|
use function file;
|
||||||
|
use function implode;
|
||||||
use function is_file;
|
use function is_file;
|
||||||
use function preg_match;
|
|
||||||
use function strlen;
|
use function strlen;
|
||||||
use function strpos;
|
use function strpos;
|
||||||
use function substr;
|
use function substr;
|
||||||
use function trim;
|
|
||||||
use const FILE_IGNORE_NEW_LINES;
|
use const FILE_IGNORE_NEW_LINES;
|
||||||
use const FILE_SKIP_EMPTY_LINES;
|
use const FILE_SKIP_EMPTY_LINES;
|
||||||
|
|
||||||
@ -60,9 +61,9 @@ class ScriptPluginLoader implements PluginLoader{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = [];
|
|
||||||
|
|
||||||
$insideHeader = false;
|
$insideHeader = false;
|
||||||
|
|
||||||
|
$docCommentLines = [];
|
||||||
foreach($content as $line){
|
foreach($content as $line){
|
||||||
if(!$insideHeader){
|
if(!$insideHeader){
|
||||||
if(strpos($line, "/**") !== false){
|
if(strpos($line, "/**") !== false){
|
||||||
@ -72,22 +73,15 @@ class ScriptPluginLoader implements PluginLoader{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(preg_match("/^[ \t]+\\*[ \t]+@([a-zA-Z]+)([ \t]+(.*))?$/", $line, $matches) > 0){
|
$docCommentLines[] = $line;
|
||||||
$key = $matches[1];
|
|
||||||
$content = trim($matches[3] ?? "");
|
|
||||||
|
|
||||||
if($key === "notscript"){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
$data[$key] = $content;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(strpos($line, "*/") !== false){
|
if(strpos($line, "*/") !== false){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($insideHeader){
|
|
||||||
|
$data = Utils::parseDocComment(implode("\n", $docCommentLines));
|
||||||
|
if(count($data) !== 0){
|
||||||
return new PluginDescription($data);
|
return new PluginDescription($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,6 +80,11 @@ parameters:
|
|||||||
count: 1
|
count: 1
|
||||||
path: ../../../src/pocketmine/network/mcpe/protocol/DataPacket.php
|
path: ../../../src/pocketmine/network/mcpe/protocol/DataPacket.php
|
||||||
|
|
||||||
|
-
|
||||||
|
message: "#^Parameter \\#1 \\$yamlString of class pocketmine\\\\plugin\\\\PluginDescription constructor expects array\\|string, array\\<string\\> given\\.$#"
|
||||||
|
count: 1
|
||||||
|
path: ../../../src/pocketmine/plugin/ScriptPluginLoader.php
|
||||||
|
|
||||||
-
|
-
|
||||||
message: "#^Dead catch \\- ReflectionException is never thrown in the try block\\.$#"
|
message: "#^Dead catch \\- ReflectionException is never thrown in the try block\\.$#"
|
||||||
count: 2
|
count: 2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user