diff options
-rw-r--r-- | include/dynref.h | 2 | ||||
-rw-r--r-- | src/modules/m_cloaking.cpp | 12 |
2 files changed, 11 insertions, 3 deletions
diff --git a/include/dynref.h b/include/dynref.h index 2569d755c..bcfca9647 100644 --- a/include/dynref.h +++ b/include/dynref.h @@ -59,7 +59,7 @@ class CoreExport dynamic_reference_base : public interfacebase, public insp::int inline void dynamic_reference_base::check() { if (!value) - throw ModuleException("Dynamic reference to '" + name + "' failed to resolve"); + throw ModuleException("Dynamic reference to '" + name + "' failed to resolve. Are you missing a module?"); } template<typename T> diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp index 83e5f2f09..f3818d623 100644 --- a/src/modules/m_cloaking.cpp +++ b/src/modules/m_cloaking.cpp @@ -146,8 +146,16 @@ class CloakUser : public ModeHandler if (!cloaks) { /* Force creation of missing cloak */ - creator->OnUserConnect(user); - cloaks = ext.get(user); + try + { + creator->OnUserConnect(user); + cloaks = ext.get(user); + } + catch (CoreException& modexcept) + { + ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Exception caught when generating cloak: " + modexcept.GetReason()); + return MODEACTION_DENY; + } } // If we have a cloak then set the hostname. |