diff --git a/src/block/BlockFactory.php b/src/block/BlockFactory.php index 88ed24cd4..4f88fbd49 100644 --- a/src/block/BlockFactory.php +++ b/src/block/BlockFactory.php @@ -51,6 +51,7 @@ use pocketmine\block\utils\TreeType; use pocketmine\item\Item; use pocketmine\item\ItemIds; use pocketmine\item\ToolTier; +use pocketmine\utils\SingletonTrait; use function array_fill; use function array_filter; use function get_class; @@ -60,15 +61,7 @@ use function min; * Manages block registration and instance creation */ class BlockFactory{ - /** @var self|null */ - private static $instance = null; - - public static function getInstance() : self{ - if(self::$instance === null){ - self::$instance = new self; - } - return self::$instance; - } + use SingletonTrait; /** * @var \SplFixedArray|Block[] diff --git a/src/item/ItemFactory.php b/src/item/ItemFactory.php index 02cab6d32..4d6884ff0 100644 --- a/src/item/ItemFactory.php +++ b/src/item/ItemFactory.php @@ -33,6 +33,7 @@ use pocketmine\entity\EntityFactory; use pocketmine\entity\Living; use pocketmine\inventory\ArmorInventory; use pocketmine\nbt\tag\CompoundTag; +use pocketmine\utils\SingletonTrait; use function constant; use function defined; use function explode; @@ -46,15 +47,7 @@ use function trim; * Manages Item instance creation and registration */ class ItemFactory{ - /** @var self|null */ - private static $instance = null; - - public static function getInstance() : self{ - if(self::$instance === null){ - self::$instance = new self; - } - return self::$instance; - } + use SingletonTrait; /** @var Item[] */ private $list = []; diff --git a/src/utils/SingletonTrait.php b/src/utils/SingletonTrait.php new file mode 100644 index 000000000..dfffe0b67 --- /dev/null +++ b/src/utils/SingletonTrait.php @@ -0,0 +1,44 @@ +