]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_chanprotect.cpp
Add Base64 encode/decode functions to the core
[user/henk/code/inspircd.git] / src / modules / m_chanprotect.cpp
index abfd9827853056faaea51c6d248b5ffb40b219e6..872ff8d7c22b4c99c4e606e93dde60e7bab0ab72 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
  * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
@@ -44,31 +44,6 @@ class FounderProtectBase
        {
        }
 
-       ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
-       {
-               User* x = ServerInstance->FindNick(parameter);
-               if (x)
-               {
-                       Membership* memb = channel->GetUser(x);
-                       if (!memb)
-                       {
-                               return std::make_pair(false, parameter);
-                       }
-                       else
-                       {
-                               if (memb->hasMode(mode))
-                               {
-                                       return std::make_pair(true, x->nick);
-                               }
-                               else
-                               {
-                                       return std::make_pair(false, parameter);
-                               }
-                       }
-               }
-               return std::make_pair(false, parameter);
-       }
-
        void RemoveMode(Channel* channel, irc::modestacker* stack)
        {
                const UserMembList* cl = channel->GetUsers();
@@ -125,7 +100,7 @@ class ChanFounder : public ModeHandler, public FounderProtectBase
 {
  public:
        ChanFounder(Module* Creator)
-               : ModeHandler(Creator, 'q', PARAM_ALWAYS, MODETYPE_CHANNEL),
+               : ModeHandler(Creator, "founder", 'q', PARAM_ALWAYS, MODETYPE_CHANNEL),
                  FounderProtectBase('q', "founder", 386, 387)
        {
                ModeHandler::list = true;
@@ -143,11 +118,6 @@ class ChanFounder : public ModeHandler, public FounderProtectBase
                return FOUNDER_VALUE;
        }
 
-       ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
-       {
-               return FounderProtectBase::ModeSet(source, dest, channel, parameter);
-       }
-
        void RemoveMode(Channel* channel, irc::modestacker* stack)
        {
                FounderProtectBase::RemoveMode(channel, stack);
@@ -177,10 +147,6 @@ class ChanFounder : public ModeHandler, public FounderProtectBase
 
        ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
        {
-               User* theuser = ServerInstance->FindNick(parameter);
-
-               if (!theuser)
-                       return MODEACTION_DENY;
                return MODEACTION_ALLOW;
        }
 
@@ -196,7 +162,7 @@ class ChanProtect : public ModeHandler, public FounderProtectBase
 {
  public:
        ChanProtect(Module* Creator)
-               : ModeHandler(Creator, 'a', PARAM_ALWAYS, MODETYPE_CHANNEL),
+               : ModeHandler(Creator, "admin", 'a', PARAM_ALWAYS, MODETYPE_CHANNEL),
                  FounderProtectBase('a',"protected user", 388, 389)
        {
                ModeHandler::list = true;
@@ -215,11 +181,6 @@ class ChanProtect : public ModeHandler, public FounderProtectBase
                return PROTECT_VALUE;
        }
 
-       ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
-       {
-               return FounderProtectBase::ModeSet(source, dest, channel, parameter);
-       }
-
        void RemoveMode(Channel* channel, irc::modestacker* stack)
        {
                FounderProtectBase::RemoveMode(channel, stack);
@@ -253,11 +214,6 @@ class ChanProtect : public ModeHandler, public FounderProtectBase
 
        ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
        {
-               User* theuser = ServerInstance->FindNick(parameter);
-
-               if (!theuser)
-                       return MODEACTION_DENY;
-
                return MODEACTION_ALLOW;
        }
 
@@ -274,15 +230,17 @@ class ModuleChanProtect : public Module
        ChanFounder cf;
  public:
        ModuleChanProtect() : cp(this), cf(this)
+       {
+       }
+
+       void init()
        {
                /* Load config stuff */
                LoadSettings();
                settings.booting = false;
 
-               if (!ServerInstance->Modes->AddMode(&cp) || !ServerInstance->Modes->AddMode(&cf))
-               {
-                       throw ModuleException("Could not add new modes!");
-               }
+               ServerInstance->Modules->AddService(cf);
+               ServerInstance->Modules->AddService(cp);
 
                Implementation eventlist[] = { I_OnUserPreJoin };
                ServerInstance->Modules->Attach(eventlist, this, 1);
@@ -331,7 +289,7 @@ class ModuleChanProtect : public Module
 
        Version GetVersion()
        {
-               return Version("Founder and Protect modes (+qa)", VF_COMMON | VF_VENDOR);
+               return Version("Founder and Protect modes (+qa)", VF_VENDOR);
        }
 };