summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/m_blockcaps.cpp10
-rw-r--r--src/modules/m_nonicks.cpp12
2 files changed, 10 insertions, 12 deletions
diff --git a/src/modules/m_blockcaps.cpp b/src/modules/m_blockcaps.cpp
index 31542befd..aa91b6bcd 100644
--- a/src/modules/m_blockcaps.cpp
+++ b/src/modules/m_blockcaps.cpp
@@ -41,10 +41,14 @@ public:
delete bc;
throw ModuleException("Could not add new modes!");
}
- Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice, I_OnRehash };
- ServerInstance->Modules->Attach(eventlist, this, 3);
+ Implementation eventlist[] = { I_OnUserPreMessage, I_OnUserPreNotice, I_OnRehash, I_On005Numeric };
+ ServerInstance->Modules->Attach(eventlist, this, 4);
}
+ virtual void On005Numeric(std::string &output)
+ {
+ ServerInstance->AddExtBanChar('B');
+ }
virtual void OnRehash(User* user, const std::string &param)
{
@@ -65,7 +69,7 @@ public:
return 0;
}
- if (c->IsModeSet('B'))
+ if (c->IsModeSet('B') || c->IsExtBanned(user, 'B'))
{
int caps = 0;
const char* actstr = "\1ACTION ";
diff --git a/src/modules/m_nonicks.cpp b/src/modules/m_nonicks.cpp
index f29cbf04a..9a1d0079e 100644
--- a/src/modules/m_nonicks.cpp
+++ b/src/modules/m_nonicks.cpp
@@ -85,16 +85,10 @@ class ModuleNoNickChange : public Module
{
Channel* curr = i->first;
- if (curr->IsModeSet('N'))
- {
- if (CHANOPS_EXEMPT(ServerInstance, 'N') && curr->GetStatus(user) == STATUS_OP)
- continue;
-
- user->WriteNumeric(ERR_CANTCHANGENICK, "%s :Can't change nickname while on %s (+N is set)", user->nick.c_str(), curr->name.c_str());
- return 1;
- }
+ if (CHANOPS_EXEMPT(ServerInstance, 'N') && curr->GetStatus(user) == STATUS_OP)
+ continue;
- if (curr->IsExtBanned(user, 'N'))
+ if (curr->IsModeSet('N') || curr->IsExtBanned(user, 'N'))
{
user->WriteNumeric(ERR_CANTCHANGENICK, "%s :Can't change nickname while on %s (+N is set)", user->nick.c_str(), curr->name.c_str());
return 1;