diff options
Diffstat (limited to 'src/modules/m_inviteexception.cpp')
| -rw-r--r-- | src/modules/m_inviteexception.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/modules/m_inviteexception.cpp b/src/modules/m_inviteexception.cpp index 565bb4bf9..8db100230 100644 --- a/src/modules/m_inviteexception.cpp +++ b/src/modules/m_inviteexception.cpp @@ -24,6 +24,7 @@ #include "inspircd.h" #include "listmode.h" +#include "modules/extban.h" #include "modules/isupport.h" enum @@ -36,12 +37,23 @@ enum class InviteException final : public ListModeBase { +private: + ExtBan::ManagerRef extbanmgr; + public: InviteException(Module* Creator) - : ListModeBase(Creator, "invex", 'I', RPL_INVEXLIST, RPL_ENDOFINVEXLIST, true) + : ListModeBase(Creator, "invex", 'I', RPL_INVEXLIST, RPL_ENDOFINVEXLIST) + , extbanmgr(Creator) { syntax = "<mask>"; } + + bool CanonicalizeParam(LocalUser* user, Channel* channel, std::string& parameter) override + { + if (!extbanmgr || !extbanmgr->Canonicalize(parameter)) + ModeParser::CleanMask(parameter); + return true; + } }; class ModuleInviteException final |
