]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_operprefix.cpp
Fix REMOVE maxparams
[user/henk/code/inspircd.git] / src / modules / m_operprefix.cpp
index e7a772432b6d86b55ad396dc9ccd38dc9440e5de..7bf3a36236e40f253dc1255702c26bcce0b75910 100644 (file)
 class OperPrefixMode : public ModeHandler
 {
        public:
-               OperPrefixMode(InspIRCd* Instance, Module* Creator, char pfx) : ModeHandler(Instance, Creator, 'y', 1, 1, true, MODETYPE_CHANNEL, false, pfx, pfx, TR_NICK) { }
+               OperPrefixMode(InspIRCd* Instance, Module* Creator, char pfx) : ModeHandler(Creator, 'y', PARAM_ALWAYS, MODETYPE_CHANNEL)
+               {
+                       list = true;
+                       prefix = pfx;
+                       levelrequired = OPERPREFIX_VALUE;
+                       m_paramtype = TR_NICK;
+               }
 
                unsigned int GetPrefixRank()
                {
@@ -92,20 +98,13 @@ class ModuleOperPrefixMode : public Module
                modechange.push_back(channel->name);
                modechange.push_back(modeline);
                modechange.push_back(user->nick);
-               ServerInstance->SendMode(modechange,this->ServerInstance->FakeClient);
+               ServerInstance->SendMode(modechange,ServerInstance->FakeClient);
        }
 
-       void OnPostJoin(User *user, Channel *channel)
+       void OnPostJoin(Membership* memb)
        {
-               if (user && IS_OPER(user))
-               {
-                       if (user->IsModeSet('H'))
-                       {
-                               /* we respect your wish to be invisible */
-                               return;
-                       }
-                       PushChanMode(channel, user);
-               }
+               if (IS_OPER(memb->user) && !memb->user->IsModeSet('H'))
+                       PushChanMode(memb->chan, memb->user);
        }
 
        // XXX: is there a better way to do this?