From 2a42e2c75d1c1b92d17559833899ce35940da269 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 4 May 2025 16:41:40 +0100 Subject: [PATCH] Drop PluginLoader from Plugin, expose path instead we already had this anyway, and it's already being reflected into. Instead of DevTools checking for FolderPluginLoader instances, it could just check if the file is a directory instead. --- src/crash/CrashDump.php | 4 +--- src/plugin/Plugin.php | 4 ++-- src/plugin/PluginBase.php | 7 +------ src/plugin/PluginManager.php | 2 +- 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/crash/CrashDump.php b/src/crash/CrashDump.php index 49a587c34..df7c9199d 100644 --- a/src/crash/CrashDump.php +++ b/src/crash/CrashDump.php @@ -259,10 +259,8 @@ class CrashDump{ } if(file_exists($filePath)){ - $reflection = new \ReflectionClass(PluginBase::class); - $file = $reflection->getProperty("file"); foreach($this->server->getPluginManager()->getPlugins() as $plugin){ - $filePath = Filesystem::cleanPath($file->getValue($plugin)); + $filePath = Filesystem::cleanPath($plugin->getFile()); if(str_starts_with($frameCleanPath, $filePath)){ $this->data->plugin = $plugin->getName(); break; diff --git a/src/plugin/Plugin.php b/src/plugin/Plugin.php index ae64d443b..b71e3f5fb 100644 --- a/src/plugin/Plugin.php +++ b/src/plugin/Plugin.php @@ -34,7 +34,7 @@ use pocketmine\Server; */ interface Plugin{ - public function __construct(PluginLoader $loader, Server $server, PluginDescription $description, string $dataFolder, string $file, string $resourceFolder); + public function __construct(Server $server, PluginDescription $description, string $dataFolder, string $file, string $resourceFolder); public function isEnabled() : bool; @@ -59,7 +59,7 @@ interface Plugin{ public function getLogger() : \AttachableLogger; - public function getPluginLoader() : PluginLoader; + public function getFile() : string; public function getScheduler() : TaskScheduler; diff --git a/src/plugin/PluginBase.php b/src/plugin/PluginBase.php index a32339e84..727e93591 100644 --- a/src/plugin/PluginBase.php +++ b/src/plugin/PluginBase.php @@ -59,7 +59,6 @@ abstract class PluginBase implements Plugin, CommandExecutor{ private TaskScheduler $scheduler; public function __construct( - private PluginLoader $loader, private Server $server, private PluginDescription $description, private string $dataFolder, @@ -311,14 +310,10 @@ abstract class PluginBase implements Plugin, CommandExecutor{ return $this->description->getFullName(); } - protected function getFile() : string{ + public function getFile() : string{ return $this->file; } - public function getPluginLoader() : PluginLoader{ - return $this->loader; - } - public function getScheduler() : TaskScheduler{ return $this->scheduler; } diff --git a/src/plugin/PluginManager.php b/src/plugin/PluginManager.php index 1a74b64e7..3750af3ef 100644 --- a/src/plugin/PluginManager.php +++ b/src/plugin/PluginManager.php @@ -220,7 +220,7 @@ class PluginManager{ * @var Plugin $plugin * @see Plugin::__construct() */ - $plugin = new $mainClass($loader, $this->server, $description, $dataFolder, $prefixed, $prefixed . "/resources/"); + $plugin = new $mainClass($this->server, $description, $dataFolder, $prefixed, $prefixed . "/resources/"); $this->plugins[$plugin->getDescription()->getName()] = $plugin; return $plugin;