summaryrefslogtreecommitdiff
path: root/src/modulemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modulemanager.cpp')
-rw-r--r--src/modulemanager.cpp6
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;
}