]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_ojoin.cpp
Increase penalty for KNOCK
[user/henk/code/inspircd.git] / src / modules / m_ojoin.cpp
index 5bd9e3f91bb59355c791506e43aa7a759ba43b75..6e9e3681200304f4ee14384765727e9999931261 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
@@ -83,8 +83,7 @@ class CommandOjoin : public Command
                        modes.push_back(parameters[0]);
                        modes.push_back("+Y");
                        modes.push_back(user->nick);
-                       ServerInstance->SendMode(modes, ServerInstance->FakeClient);
-                       ServerInstance->PI->SendMode(parameters[0], ServerInstance->Modes->GetLastParseParams(), ServerInstance->Modes->GetLastParseTranslate());
+                       ServerInstance->SendGlobalMode(modes, ServerInstance->FakeClient);
                }
                return CMD_SUCCESS;
        }
@@ -95,7 +94,7 @@ class CommandOjoin : public Command
 class NetworkPrefix : public ModeHandler
 {
  public:
-       NetworkPrefix(Module* parent) : ModeHandler(parent, 'Y', PARAM_ALWAYS, MODETYPE_CHANNEL)
+       NetworkPrefix(Module* parent) : ModeHandler(parent, "official-join", 'Y', PARAM_ALWAYS, MODETYPE_CHANNEL)
        {
                list = true;
                prefix = NPrefix;
@@ -103,31 +102,6 @@ class NetworkPrefix : public ModeHandler
                m_paramtype = TR_NICK;
        }
 
-       ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
-       {
-               User* x = ServerInstance->FindNick(parameter);
-               if (x)
-               {
-                       Membership* m = channel->GetUser(x);
-                       if (!m)
-                       {
-                               return std::make_pair(false, parameter);
-                       }
-                       else
-                       {
-                               if (m->hasMode('Y'))
-                               {
-                                       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();
@@ -236,6 +210,10 @@ class ModuleOjoin : public Module
 
        ModuleOjoin()
                : np(NULL), mycommand(this)
+       {
+       }
+
+       void init()
        {
                /* Load config stuff */
                OnRehash(NULL);
@@ -243,16 +221,11 @@ class ModuleOjoin : public Module
                /* Initialise module variables */
                np = new NetworkPrefix(this);
 
-               if (!ServerInstance->Modes->AddMode(np))
-               {
-                       delete np;
-                       throw ModuleException("Could not add new mode!");
-               }
-
-               ServerInstance->AddCommand(&mycommand);
+               ServerInstance->Modules->AddService(*np);
+               ServerInstance->Modules->AddService(mycommand);
 
-               Implementation eventlist[] = { I_OnUserPreJoin, I_OnUserKick, I_OnUserPart, I_OnUserPreKick, I_OnRehash };
-               ServerInstance->Modules->Attach(eventlist, this, 5);
+               Implementation eventlist[] = { I_OnUserPreJoin, I_OnUserPreKick, I_OnRehash };
+               ServerInstance->Modules->Attach(eventlist, this, 3);
        }
 
        ModResult OnUserPreJoin(User *user, Channel *chan, const char *cname, std::string &privs, const std::string &keygiven)
@@ -305,7 +278,6 @@ class ModuleOjoin : public Module
 
        ~ModuleOjoin()
        {
-               ServerInstance->Modes->DelMode(np);
                delete np;
        }
 
@@ -316,7 +288,7 @@ class ModuleOjoin : public Module
 
        Version GetVersion()
        {
-               return Version("Network Buisness Join", VF_COMMON | VF_VENDOR);
+               return Version("Network Buisness Join", VF_VENDOR);
        }
 };