mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-06 20:07:09 +00:00
Avoid dodgy array_flip hash building
the conventional way is using array_keys and array_fill_keys. Behaviour is more predictable & also avoids benevolent union fuckery from PHPStan.
This commit is contained in:
parent
e34f34f9f4
commit
0a16daa619
@ -25,18 +25,22 @@ namespace pocketmine\item\enchantment;
|
|||||||
|
|
||||||
use pocketmine\event\entity\EntityDamageEvent;
|
use pocketmine\event\entity\EntityDamageEvent;
|
||||||
use pocketmine\lang\Translatable;
|
use pocketmine\lang\Translatable;
|
||||||
use function array_flip;
|
use function array_fill_keys;
|
||||||
use function floor;
|
use function floor;
|
||||||
|
|
||||||
class ProtectionEnchantment extends Enchantment{
|
class ProtectionEnchantment extends Enchantment{
|
||||||
protected float $typeModifier;
|
protected float $typeModifier;
|
||||||
/** @var int[]|null */
|
/**
|
||||||
|
* @var true[]|null
|
||||||
|
* @phpstan-var array<int, true>
|
||||||
|
*/
|
||||||
protected ?array $applicableDamageTypes = null;
|
protected ?array $applicableDamageTypes = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ProtectionEnchantment constructor.
|
* ProtectionEnchantment constructor.
|
||||||
*
|
*
|
||||||
* @phpstan-param null|(\Closure(int $level) : int) $minEnchantingPower
|
* @phpstan-param null|(\Closure(int $level) : int) $minEnchantingPower
|
||||||
|
* @phpstan-param list<int>|null $applicableDamageTypes
|
||||||
*
|
*
|
||||||
* @param int $primaryItemFlags @deprecated
|
* @param int $primaryItemFlags @deprecated
|
||||||
* @param int $secondaryItemFlags @deprecated
|
* @param int $secondaryItemFlags @deprecated
|
||||||
@ -48,7 +52,7 @@ class ProtectionEnchantment extends Enchantment{
|
|||||||
|
|
||||||
$this->typeModifier = $typeModifier;
|
$this->typeModifier = $typeModifier;
|
||||||
if($applicableDamageTypes !== null){
|
if($applicableDamageTypes !== null){
|
||||||
$this->applicableDamageTypes = array_flip($applicableDamageTypes);
|
$this->applicableDamageTypes = array_fill_keys($applicableDamageTypes, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,8 @@ declare(strict_types=1);
|
|||||||
namespace pocketmine\plugin;
|
namespace pocketmine\plugin;
|
||||||
|
|
||||||
use pocketmine\utils\Utils;
|
use pocketmine\utils\Utils;
|
||||||
use function array_flip;
|
use function array_fill_keys;
|
||||||
|
use function array_keys;
|
||||||
use function is_array;
|
use function is_array;
|
||||||
use function is_float;
|
use function is_float;
|
||||||
use function is_int;
|
use function is_int;
|
||||||
@ -32,23 +33,28 @@ use function is_string;
|
|||||||
|
|
||||||
class PluginGraylist{
|
class PluginGraylist{
|
||||||
|
|
||||||
/** @var string[] */
|
/**
|
||||||
|
* @var true[]
|
||||||
|
* @phpstan-var array<string, true>
|
||||||
|
*/
|
||||||
private array $plugins;
|
private array $plugins;
|
||||||
private bool $isWhitelist = false;
|
private bool $isWhitelist = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string[] $plugins
|
* @param string[] $plugins
|
||||||
|
* @phpstan-param list<string> $plugins
|
||||||
*/
|
*/
|
||||||
public function __construct(array $plugins = [], bool $whitelist = false){
|
public function __construct(array $plugins = [], bool $whitelist = false){
|
||||||
$this->plugins = array_flip($plugins);
|
$this->plugins = array_fill_keys($plugins, true);
|
||||||
$this->isWhitelist = $whitelist;
|
$this->isWhitelist = $whitelist;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string[]
|
* @return string[]
|
||||||
|
* @phpstan-return list<string>
|
||||||
*/
|
*/
|
||||||
public function getPlugins() : array{
|
public function getPlugins() : array{
|
||||||
return array_flip($this->plugins);
|
return array_keys($this->plugins);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isWhitelist() : bool{
|
public function isWhitelist() : bool{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user