mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-19 15:35:52 +00:00
plugin: improve PHPDocs and type compliance
This commit is contained in:
parent
84ec8b7abe
commit
1b2d2a3fe1
@ -84,11 +84,20 @@ class PluginDescription{
|
||||
* @phpstan-var array<string, list<string>>
|
||||
*/
|
||||
private array $extensions = [];
|
||||
/** @var string[] */
|
||||
/**
|
||||
* @var string[]
|
||||
* @phpstan-var list<string>
|
||||
*/
|
||||
private array $depend = [];
|
||||
/** @var string[] */
|
||||
/**
|
||||
* @var string[]
|
||||
* @phpstan-var list<string>
|
||||
*/
|
||||
private array $softDepend = [];
|
||||
/** @var string[] */
|
||||
/**
|
||||
* @var string[]
|
||||
* @phpstan-var list<string>
|
||||
*/
|
||||
private array $loadBefore = [];
|
||||
private string $version;
|
||||
/**
|
||||
@ -173,7 +182,7 @@ class PluginDescription{
|
||||
}
|
||||
|
||||
if(isset($plugin[self::KEY_DEPEND])){
|
||||
$this->depend = (array) $plugin[self::KEY_DEPEND];
|
||||
$this->depend = array_values((array) $plugin[self::KEY_DEPEND]);
|
||||
}
|
||||
if(isset($plugin[self::KEY_EXTENSIONS])){
|
||||
$extensions = (array) $plugin[self::KEY_EXTENSIONS];
|
||||
@ -183,13 +192,13 @@ class PluginDescription{
|
||||
$k = $v;
|
||||
$v = "*";
|
||||
}
|
||||
$this->extensions[(string) $k] = array_map('strval', is_array($v) ? $v : [$v]);
|
||||
$this->extensions[(string) $k] = array_values(array_map('strval', is_array($v) ? $v : [$v]));
|
||||
}
|
||||
}
|
||||
|
||||
$this->softDepend = (array) ($plugin[self::KEY_SOFTDEPEND] ?? $this->softDepend);
|
||||
$this->softDepend = array_values((array) ($plugin[self::KEY_SOFTDEPEND] ?? $this->softDepend));
|
||||
|
||||
$this->loadBefore = (array) ($plugin[self::KEY_LOADBEFORE] ?? $this->loadBefore);
|
||||
$this->loadBefore = array_values((array) ($plugin[self::KEY_LOADBEFORE] ?? $this->loadBefore));
|
||||
|
||||
$this->website = (string) ($plugin[self::KEY_WEBSITE] ?? $this->website);
|
||||
|
||||
@ -210,7 +219,7 @@ class PluginDescription{
|
||||
$this->authors = [];
|
||||
if(isset($plugin[self::KEY_AUTHOR])){
|
||||
if(is_array($plugin[self::KEY_AUTHOR])){
|
||||
$this->authors = $plugin[self::KEY_AUTHOR];
|
||||
$this->authors = array_values($plugin[self::KEY_AUTHOR]);
|
||||
}else{
|
||||
$this->authors[] = $plugin[self::KEY_AUTHOR];
|
||||
}
|
||||
@ -284,6 +293,7 @@ class PluginDescription{
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
* @phpstan-return list<string>
|
||||
*/
|
||||
public function getDepend() : array{
|
||||
return $this->depend;
|
||||
@ -295,6 +305,7 @@ class PluginDescription{
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
* @phpstan-return list<string>
|
||||
*/
|
||||
public function getLoadBefore() : array{
|
||||
return $this->loadBefore;
|
||||
@ -324,6 +335,7 @@ class PluginDescription{
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
* @phpstan-return list<string>
|
||||
*/
|
||||
public function getSoftDepend() : array{
|
||||
return $this->softDepend;
|
||||
|
@ -31,12 +31,12 @@ final class PluginLoadTriage{
|
||||
public array $plugins = [];
|
||||
/**
|
||||
* @var string[][]
|
||||
* @phpstan-var array<string, list<string>>
|
||||
* @phpstan-var array<string, array<string>>
|
||||
*/
|
||||
public array $dependencies = [];
|
||||
/**
|
||||
* @var string[][]
|
||||
* @phpstan-var array<string, list<string>>
|
||||
* @phpstan-var array<string, array<string>>
|
||||
*/
|
||||
public array $softDependencies = [];
|
||||
}
|
||||
|
@ -327,12 +327,12 @@ class PluginManager{
|
||||
* @param string[][] $dependencyLists
|
||||
* @param Plugin[] $loadedPlugins
|
||||
*
|
||||
* @phpstan-param array<string, list<string>> $dependencyLists
|
||||
* @phpstan-param-out array<string, list<string>> $dependencyLists
|
||||
* @phpstan-param array<string, array<string>> $dependencyLists
|
||||
* @phpstan-param-out array<string, array<string>> $dependencyLists
|
||||
*/
|
||||
private function checkDepsForTriage(string $pluginName, string $dependencyType, array &$dependencyLists, array $loadedPlugins, PluginLoadTriage $triage) : void{
|
||||
if(isset($dependencyLists[$pluginName])){
|
||||
foreach($dependencyLists[$pluginName] as $key => $dependency){
|
||||
foreach(Utils::promoteKeys($dependencyLists[$pluginName]) as $key => $dependency){
|
||||
if(isset($loadedPlugins[$dependency]) || $this->getPlugin($dependency) instanceof Plugin){
|
||||
$this->server->getLogger()->debug("Successfully resolved $dependencyType dependency \"$dependency\" for plugin \"$pluginName\"");
|
||||
unset($dependencyLists[$pluginName][$key]);
|
||||
@ -399,7 +399,7 @@ class PluginManager{
|
||||
//check for skippable soft dependencies first, in case the dependents could resolve hard dependencies
|
||||
foreach(Utils::stringifyKeys($triage->plugins) as $name => $file){
|
||||
if(isset($triage->softDependencies[$name]) && !isset($triage->dependencies[$name])){
|
||||
foreach($triage->softDependencies[$name] as $k => $dependency){
|
||||
foreach(Utils::promoteKeys($triage->softDependencies[$name]) as $k => $dependency){
|
||||
if($this->getPlugin($dependency) === null && !array_key_exists($dependency, $triage->plugins)){
|
||||
$this->server->getLogger()->debug("Skipping resolution of missing soft dependency \"$dependency\" for plugin \"$name\"");
|
||||
unset($triage->softDependencies[$name][$k]);
|
||||
@ -416,7 +416,7 @@ class PluginManager{
|
||||
if(isset($triage->dependencies[$name])){
|
||||
$unknownDependencies = [];
|
||||
|
||||
foreach($triage->dependencies[$name] as $k => $dependency){
|
||||
foreach($triage->dependencies[$name] as $dependency){
|
||||
if($this->getPlugin($dependency) === null && !array_key_exists($dependency, $triage->plugins)){
|
||||
//assume that the plugin is never going to be loaded
|
||||
//by this point all soft dependencies have been ignored if they were able to be, so
|
||||
|
Loading…
x
Reference in New Issue
Block a user