99#include " ll/api/utils/ErrorUtils.h"
1010#include " ll/api/utils/StringUtils.h"
1111#include " lse/Entry.h"
12- #include " lse/Plugin .h"
12+ #include " lse/ScriptPlugin .h"
1313
1414#include < ScriptX/ScriptX.h>
1515#include < exception>
@@ -65,7 +65,7 @@ ll::Expected<> PluginManager::load(ll::mod::Manifest manifest) {
6565 return ll::makeStringError (" Plugin has already loaded" );
6666 }
6767
68- auto plugin = std::make_shared<Plugin >(manifest);
68+ auto plugin = std::make_shared<ScriptPlugin >(manifest);
6969
7070 return plugin->onLoad ().transform ([&, this ] { addMod (manifest.name , plugin); });
7171}
@@ -131,7 +131,7 @@ ll::Expected<> PluginManager::enable(std::string_view name) {
131131 }
132132 }
133133#endif
134- auto plugin = std::static_pointer_cast<Plugin >(getMod (name));
134+ auto plugin = std::static_pointer_cast<ScriptPlugin >(getMod (name));
135135 if (!plugin) {
136136 return ll::makeStringError (" Plugin {0} not found" _tr (name));
137137 }
@@ -280,8 +280,11 @@ ll::Expected<> PluginManager::disable(std::string_view name) {
280280 NodeJsHelper::stopEngine (scriptEngine);
281281#endif
282282
283- if (auto res = std::static_pointer_cast<Plugin>(getMod (name))->onDisable (); !res) {
284- return res;
283+ if (auto plugin = std::static_pointer_cast<ScriptPlugin>(getMod (name))) {
284+ plugin->registeredCommands .clear ();
285+ if (auto res = plugin->onDisable (); !res) {
286+ return res;
287+ }
285288 }
286289 return {};
287290 } catch (const Exception&) {
@@ -292,7 +295,7 @@ ll::Expected<> PluginManager::disable(std::string_view name) {
292295}
293296
294297ll::Expected<> PluginManager::unload (std::string_view name) {
295- if (auto res = std::static_pointer_cast<Plugin >(getMod (name))->onUnload (); !res) {
298+ if (auto res = std::static_pointer_cast<ScriptPlugin >(getMod (name))->onUnload (); !res) {
296299 return res;
297300 }
298301 eraseMod (name);
0 commit comments