diff options
-rw-r--r-- | docs/helpop.conf.example | 3 | ||||
-rw-r--r-- | src/modules/m_operchans.cpp | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/docs/helpop.conf.example b/docs/helpop.conf.example index d225be232..d32dabd90 100644 --- a/docs/helpop.conf.example +++ b/docs/helpop.conf.example @@ -284,5 +284,6 @@ line13="n Only users who are members of the channel may message it" line14="p Make channel private (hide from /LIST)" line15="s Make channel secret (can't be used at the same time as +p)" - line16="t Only halfops and above can change the topic"> + line16="O Channel is IRCops only (can only be set by IRCops)" + line17="t Only halfops and above can change the topic"> diff --git a/src/modules/m_operchans.cpp b/src/modules/m_operchans.cpp index 461b7bece..ba9a4d79f 100644 --- a/src/modules/m_operchans.cpp +++ b/src/modules/m_operchans.cpp @@ -17,7 +17,7 @@ class ModuleOperChans : public Module Srv = new Server; // Add a mode +O for channels with no parameters - Srv->AddExtendedMode('Z',MT_CHANNEL,false,0,0); + Srv->AddExtendedMode('O',MT_CHANNEL,false,0,0); } virtual int OnExtendedMode(userrec* user, void* target, char modechar, int type, bool mode_on, string_list ¶ms) @@ -26,7 +26,7 @@ class ModuleOperChans : public Module { chanrec* chan = (chanrec*)target; - if ((Srv->IsUlined(source->nick)) || (Srv->IsUlined(source->server)) || (!strcmp(source->server,"")) || (strchr(source->modes,'o'))) + if ((Srv->IsUlined(user->nick)) || (Srv->IsUlined(user->server)) || (!strcmp(user->server,"")) || (strchr(user->modes,'o'))) { return 1; } @@ -34,7 +34,7 @@ class ModuleOperChans : public Module { // eat the mode change, return an error WriteServ(user->fd,"468 %s %s :Only servers and opers may set channel mode +O",user->nick, chan->name); - return -1; + return 0; } // must return 1 to handle the mode! |