diff options
Diffstat (limited to 'src/modulemanager.cpp')
-rw-r--r-- | src/modulemanager.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index 813bc2d50..085f9f848 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -255,6 +255,8 @@ int ModuleManager::LoadModule(const std::string &modname, User * u) m->OnPostLoadDatabases(); } + FOREACH_MOD(I_OnModuleLoad, OnModuleLoad(u, m)); + return MOD_ERR_OK; } @@ -267,7 +269,7 @@ int ModuleManager::UnloadModule(Module *m, User *u) return MOD_ERR_PARAMS; } - if (m->GetPermanent() || m->type == PROTOCOL || m->type == ENCRYPTION) + if (m->GetPermanent() || m->type == PROTOCOL || m->type == ENCRYPTION || m->type == DATABASE) { if (u) notice_lang(Config.s_OperServ, u, OPER_MODULE_NO_UNLOAD); @@ -280,6 +282,8 @@ int ModuleManager::UnloadModule(Module *m, User *u) notice_lang(Config.s_OperServ, u, OPER_MODULE_UNLOADED, m->name.c_str()); } + FOREACH_MOD(I_OnModuleUnload, OnModuleUnload(u, m)); + DeleteModule(m); return MOD_ERR_OK; } |