From dead664e4d0dc325de7e3512a18e545561c41d99 Mon Sep 17 00:00:00 2001 From: Boy132 Date: Thu, 19 Feb 2026 14:57:19 +0100 Subject: [PATCH] Make plugin id in artisan commands also case insensitive (#2252) --- .../Commands/Plugin/DisablePluginCommand.php | 2 +- .../Commands/Plugin/InstallPluginCommand.php | 2 +- .../Commands/Plugin/UninstallPluginCommand.php | 2 +- .../Commands/Plugin/UpdatePluginCommand.php | 2 +- app/Services/Helpers/PluginService.php | 17 +++++++++-------- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/Console/Commands/Plugin/DisablePluginCommand.php b/app/Console/Commands/Plugin/DisablePluginCommand.php index 3aef3aecc..5d6684ad2 100644 --- a/app/Console/Commands/Plugin/DisablePluginCommand.php +++ b/app/Console/Commands/Plugin/DisablePluginCommand.php @@ -16,7 +16,7 @@ class DisablePluginCommand extends Command { $id = $this->argument('id') ?? $this->choice('Plugin', Plugin::pluck('name', 'id')->toArray()); - $plugin = Plugin::find($id); + $plugin = Plugin::find(str($id)->lower()->toString()); if (!$plugin) { $this->error('Plugin does not exist!'); diff --git a/app/Console/Commands/Plugin/InstallPluginCommand.php b/app/Console/Commands/Plugin/InstallPluginCommand.php index 1e6a8efdd..67b3ccacb 100644 --- a/app/Console/Commands/Plugin/InstallPluginCommand.php +++ b/app/Console/Commands/Plugin/InstallPluginCommand.php @@ -18,7 +18,7 @@ class InstallPluginCommand extends Command { $id = $this->argument('id') ?? $this->choice('Plugin', Plugin::pluck('name', 'id')->toArray()); - $plugin = Plugin::find($id); + $plugin = Plugin::find(str($id)->lower()->toString()); if (!$plugin) { $this->error('Plugin does not exist!'); diff --git a/app/Console/Commands/Plugin/UninstallPluginCommand.php b/app/Console/Commands/Plugin/UninstallPluginCommand.php index 0463ec57b..66c1a3427 100644 --- a/app/Console/Commands/Plugin/UninstallPluginCommand.php +++ b/app/Console/Commands/Plugin/UninstallPluginCommand.php @@ -18,7 +18,7 @@ class UninstallPluginCommand extends Command { $id = $this->argument('id') ?? $this->choice('Plugin', Plugin::pluck('name', 'id')->toArray()); - $plugin = Plugin::find($id); + $plugin = Plugin::find(str($id)->lower()->toString()); if (!$plugin) { $this->error('Plugin does not exist!'); diff --git a/app/Console/Commands/Plugin/UpdatePluginCommand.php b/app/Console/Commands/Plugin/UpdatePluginCommand.php index b12244c84..75dc8208f 100644 --- a/app/Console/Commands/Plugin/UpdatePluginCommand.php +++ b/app/Console/Commands/Plugin/UpdatePluginCommand.php @@ -17,7 +17,7 @@ class UpdatePluginCommand extends Command { $id = $this->argument('id') ?? $this->choice('Plugin', Plugin::pluck('name', 'id')->toArray()); - $plugin = Plugin::find($id); + $plugin = Plugin::find(str($id)->lower()->toString()); if (!$plugin) { $this->error('Plugin does not exist!'); diff --git a/app/Services/Helpers/PluginService.php b/app/Services/Helpers/PluginService.php index de364e49d..26ead4f6c 100644 --- a/app/Services/Helpers/PluginService.php +++ b/app/Services/Helpers/PluginService.php @@ -39,7 +39,7 @@ class PluginService /** @var ClassLoader $classLoader */ $classLoader = File::getRequire(base_path('vendor/autoload.php')); - $plugins = Plugin::query()->orderBy('load_order')->get(); + $plugins = Plugin::orderBy('load_order')->get(); foreach ($plugins as $plugin) { try { // Filter out plugins that are not compatible with the current panel version @@ -138,7 +138,7 @@ class PluginService return; } - $plugins = Plugin::query()->orderBy('load_order')->get(); + $plugins = Plugin::orderBy('load_order')->get(); foreach ($plugins as $plugin) { try { if (!$plugin->shouldLoad($panel->getId())) { @@ -172,7 +172,7 @@ class PluginService { $newPackages ??= []; - $plugins = Plugin::query()->orderBy('load_order')->get(); + $plugins = Plugin::orderBy('load_order')->get(); foreach ($plugins as $plugin) { if (!$plugin->composer_packages) { continue; @@ -434,7 +434,7 @@ class PluginService /** @param array $data */ private function setMetaData(string|Plugin $plugin, array $data): void { - $path = plugin_path($plugin instanceof Plugin ? $plugin->id : $plugin, 'plugin.json'); + $path = plugin_path($plugin->id, 'plugin.json'); if (File::exists($path)) { $pluginData = File::json($path, JSON_THROW_ON_ERROR); @@ -443,7 +443,6 @@ class PluginService File::put($path, json_encode($pluginData, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); - $plugin = $plugin instanceof Plugin ? $plugin : Plugin::findOrFail($plugin); $plugin->update($metaData); } } @@ -464,6 +463,8 @@ class PluginService public function updateLoadOrder(array $order): void { foreach ($order as $i => $plugin) { + $plugin = Plugin::firstOrFail(str($plugin)->lower()->toString()); + $this->setMetaData($plugin, [ 'load_order' => $i, ]); @@ -472,7 +473,7 @@ class PluginService public function hasThemePluginEnabled(): bool { - $plugins = Plugin::query()->orderBy('load_order')->get(); + $plugins = Plugin::orderBy('load_order')->get(); foreach ($plugins as $plugin) { if ($plugin->isTheme() && $plugin->status === PluginStatus::Enabled) { return true; @@ -487,7 +488,7 @@ class PluginService { $languages = []; - $plugins = Plugin::query()->orderBy('load_order')->get(); + $plugins = Plugin::orderBy('load_order')->get(); foreach ($plugins as $plugin) { if ($plugin->status !== PluginStatus::Enabled || !$plugin->isLanguage()) { continue; @@ -504,7 +505,7 @@ class PluginService return config('panel.plugin.dev_mode', false); } - private function handlePluginException(string|Plugin $plugin, Exception $exception): void + private function handlePluginException(Plugin $plugin, Exception $exception): void { if ($this->isDevModeActive()) { throw ($exception);