]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_chanprotect.cpp
Match on nick change option for RLine, document m_rline & this option.
[user/henk/code/inspircd.git] / src / modules / m_chanprotect.cpp
index daa728e61211d1f9bdc657a9e0ab31f6f5ae2221..0cc4fe8d7b971efbfafc1f470fee920f56ffa0be 100644 (file)
@@ -62,7 +62,7 @@ class FounderProtectBase
                return std::make_pair(false, parameter);
        }
 
-       void RemoveMode(Channel* channel, char mc)
+       void RemoveMode(Channel* channel, char mc, irc::modestacker* stack)
        {
                CUList* cl = channel->GetUsers();
                std::string item = extend + std::string(channel->name);
@@ -75,10 +75,16 @@ class FounderProtectBase
                {
                        if (i->first->GetExt(item))
                        {
-                               modestack.Push(mc, i->first->nick);
+                               if (stack)
+                                       stack->Push(mc, i->first->nick);
+                               else
+                                       modestack.Push(mc, i->first->nick);
                        }
                }
 
+               if (stack)
+                       return;
+
                while (modestack.GetStackedLine(stackresult))
                {
                        for (size_t j = 0; j < stackresult.size(); j++)
@@ -165,12 +171,12 @@ class ChanFounder : public ModeHandler, public FounderProtectBase
                return FounderProtectBase::ModeSet(source, dest, channel, parameter);
        }
 
-       void RemoveMode(Channel* channel)
+       void RemoveMode(Channel* channel, irc::modestacker* stack)
        {
-               FounderProtectBase::RemoveMode(channel, this->GetModeChar());
+               FounderProtectBase::RemoveMode(channel, this->GetModeChar(), stack);
        }
 
-       void RemoveMode(User* user)
+       void RemoveMode(User* user, irc::modestacker* stack)
        {
        }
 
@@ -231,12 +237,12 @@ class ChanProtect : public ModeHandler, public FounderProtectBase
                return FounderProtectBase::ModeSet(source, dest, channel, parameter);
        }
 
-       void RemoveMode(Channel* channel)
+       void RemoveMode(Channel* channel, irc::modestacker* stack)
        {
-               FounderProtectBase::RemoveMode(channel, this->GetModeChar());
+               FounderProtectBase::RemoveMode(channel, this->GetModeChar(), stack);
        }
 
-       void RemoveMode(User* user)
+       void RemoveMode(User* user, irc::modestacker* stack)
        {
        }