@@ -138,7+140,14 @@ class ModuleCensor : public Module
if (target_type == TYPE_USER)
active = ((User*)dest)->IsModeSet('G');
else if (target_type == TYPE_CHANNEL)
if (target_type == TYPE_USER)
active = ((User*)dest)->IsModeSet('G');
else if (target_type == TYPE_CHANNEL)
+ {
active = ((Channel*)dest)->IsModeSet('G');
active = ((Channel*)dest)->IsModeSet('G');
+ Channel* c = (Channel*)dest;
+ if (CHANOPS_EXEMPT(ServerInstance, 'G') && c->GetStatus(user) == STATUS_OP)
+ {
+ return 0;
+ }
+ }
if (!active)
return 0;
if (!active)
return 0;
@@ -150,7+159,7 @@ class ModuleCensor : public Module
{
if (index->second.empty())
{
{
if (index->second.empty())
{
- user->WriteServ("936 %s %s %s :Your message contained a censored word, and was blocked", user->nick, ((Channel*)dest)->name, index->first.c_str());
+ user->WriteNumeric(936, "%s %s %s :Your message contained a censored word, and was blocked", user->nick, ((Channel*)dest)->name, index->first.c_str());
return 1;
}
return 1;
}
@@ -187,7+196,7 @@ class ModuleCensor : public Module