summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/m_stripcolor.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/modules/m_stripcolor.cpp b/src/modules/m_stripcolor.cpp
index c3c274dff..9ba8775b9 100644
--- a/src/modules/m_stripcolor.cpp
+++ b/src/modules/m_stripcolor.cpp
@@ -46,11 +46,10 @@ class ModuleStripColor : public Module
if (!ServerInstance->Modes->AddMode(usc) || !ServerInstance->Modes->AddMode(csc))
throw ModuleException("Could not add new modes!");
- Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice };
- ServerInstance->Modules->Attach(eventlist, this, 2);
+ Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice, I_On005Numeric };
+ ServerInstance->Modules->Attach(eventlist, this, 3);
}
-
virtual ~ModuleStripColor()
{
ServerInstance->Modes->DelMode(usc);
@@ -59,6 +58,11 @@ class ModuleStripColor : public Module
delete csc;
}
+ virtual void On005Numeric(std::string &output)
+ {
+ ServerInstance->AddExtBanChar('S');
+ }
+
virtual void ReplaceLine(std::string &sentence)
{
/* refactor this completely due to SQUIT bug since the old code would strip last char and replace with \0 --peavey */
@@ -121,7 +125,7 @@ class ModuleStripColor : public Module
return 0;
}
- active = t->IsModeSet('S');
+ active = t->IsModeSet('S') || t->IsExtBanned(user, 'S');
}
if (active)