diff options
-rw-r--r-- | src/modules/m_invisible.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/modules/m_invisible.cpp b/src/modules/m_invisible.cpp index aa69d1b85..c1b2dcc7f 100644 --- a/src/modules/m_invisible.cpp +++ b/src/modules/m_invisible.cpp @@ -59,20 +59,23 @@ class InvisibleMode : public ModeHandler { bool ok = false; - for (int j = 0; j < conf->Enumerate("type"); j++) + if (IS_LOCAL(source)) { - std::string opertype = conf->ReadValue("type","name",j); - if (opertype == source->oper) + for (int j = 0; j < conf->Enumerate("type"); j++) { - ok = conf->ReadFlag("type", "canquiet", j); - break; + std::string opertype = conf->ReadValue("type","name",j); + if (opertype == source->oper) + { + ok = conf->ReadFlag("type", "canquiet", j); + break; + } } - } - if (!ok) - { - source->WriteNumeric(481, "%s :Permission Denied - You do not have access to become invisible via user mode +Q", source->nick.c_str()); - return MODEACTION_DENY; + if (!ok) + { + source->WriteNumeric(481, "%s :Permission Denied - You do not have access to become invisible via user mode +Q", source->nick.c_str()); + return MODEACTION_DENY; + } } dest->SetMode('Q', adding); |