diff --git a/User.cpp b/User.cpp index e2bd903e..0c214922 100644 --- a/User.cpp +++ b/User.cpp @@ -354,39 +354,6 @@ bool CUser::Clone(const CUser& User, CString& sErrorRet, bool bCloneChans) { // !Allowed Hosts -#ifdef _MODULES - // Modules - set ssUnloadMods; - CModules& vCurMods = GetModules(); - const CModules& vNewMods = User.GetModules(); - - for (a = 0; a < vNewMods.size(); a++) { - CString sModRet; - CModule* pNewMod = vNewMods[a]; - CModule* pCurMod = vCurMods.FindModule(pNewMod->GetModName()); - - if (!pCurMod) { - vCurMods.LoadModule(pNewMod->GetModName(), pNewMod->GetArgs(), this, sModRet); - } else if (pNewMod->GetArgs() != pCurMod->GetArgs()) { - vCurMods.ReloadModule(pNewMod->GetModName(), pNewMod->GetArgs(), this, sModRet); - } - } - - for (a = 0; a < vCurMods.size(); a++) { - CModule* pCurMod = vCurMods[a]; - CModule* pNewMod = vNewMods.FindModule(pCurMod->GetModName()); - - if (!pNewMod) { - ssUnloadMods.insert(pCurMod->GetModName()); - } - } - - for (set::iterator it = ssUnloadMods.begin(); it != ssUnloadMods.end(); it++) { - vCurMods.UnloadModule(*it); - } - // !Modules -#endif // !_MODULES - // Servers const vector& vServers = User.GetServers(); CString sServer; @@ -469,6 +436,39 @@ bool CUser::Clone(const CUser& User, CString& sErrorRet, bool bCloneChans) { SetTimezoneOffset(User.GetTimezoneOffset()); // !Flags +#ifdef _MODULES + // Modules + set ssUnloadMods; + CModules& vCurMods = GetModules(); + const CModules& vNewMods = User.GetModules(); + + for (a = 0; a < vNewMods.size(); a++) { + CString sModRet; + CModule* pNewMod = vNewMods[a]; + CModule* pCurMod = vCurMods.FindModule(pNewMod->GetModName()); + + if (!pCurMod) { + vCurMods.LoadModule(pNewMod->GetModName(), pNewMod->GetArgs(), this, sModRet); + } else if (pNewMod->GetArgs() != pCurMod->GetArgs()) { + vCurMods.ReloadModule(pNewMod->GetModName(), pNewMod->GetArgs(), this, sModRet); + } + } + + for (a = 0; a < vCurMods.size(); a++) { + CModule* pCurMod = vCurMods[a]; + CModule* pNewMod = vNewMods.FindModule(pCurMod->GetModName()); + + if (!pNewMod) { + ssUnloadMods.insert(pCurMod->GetModName()); + } + } + + for (set::iterator it = ssUnloadMods.begin(); it != ssUnloadMods.end(); it++) { + vCurMods.UnloadModule(*it); + } + // !Modules +#endif // !_MODULES + return true; }