]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_ojoin.cpp
Move static map of extensions into ServerInstance, add const-correctness
[user/henk/code/inspircd.git] / src / modules / m_ojoin.cpp
index 63be08a0fb562e257092cf2ee75beea048fffc94..d5f7b9443f8c77ce93cf773e1b1562ad1ef8cbe4 100644 (file)
@@ -43,9 +43,9 @@ class CommandOjoin : public Command
 {
  public:
        bool active;
-       CommandOjoin (InspIRCd* Instance, Module* parent) : Command(Instance,parent,"OJOIN", "o", 1, false, 0)
+       CommandOjoin(Module* parent) : Command(parent,"OJOIN", 1)
        {
-               syntax = "<channel>";
+               flags_needed = 'o'; Penalty = 0; syntax = "<channel>";
                active = false;
                TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
        }
@@ -60,27 +60,17 @@ class CommandOjoin : public Command
                }
 
                active = true;
-               Channel* channel = Channel::JoinUser(ServerInstance, user, parameters[0].c_str(), false, "", false);
+               Channel* channel = Channel::JoinUser(user, parameters[0].c_str(), false, "", false);
                active = false;
 
                if (channel)
                {
                        ServerInstance->SNO->WriteGlobalSno('a', std::string(user->nick)+" used OJOIN to join "+channel->name);
 
-                       if (!NPrefix)
-                       {
-                               std::vector<std::string> modes;
-                               modes.push_back(parameters[0]);
-                               modes.push_back("+Y");
-                               modes.push_back(user->nick);
-                               ServerInstance->SendMode(modes, ServerInstance->FakeClient);
-                               ServerInstance->PI->SendMode(channel->name, ServerInstance->Modes->GetLastParseParams(), ServerInstance->Modes->GetLastParseTranslate());
-                       }
-
                        if (notice)
                        {
                                channel = ServerInstance->FindChan(parameters[0]);
-                               channel->WriteChannelWithServ(ServerInstance->Config->ServerName, "NOTICE %s :%s joined on official network business.",
+                               channel->WriteChannelWithServ(ServerInstance->Config->ServerName.c_str(), "NOTICE %s :%s joined on official network business.",
                                        parameters[0].c_str(), user->nick.c_str());
                                ServerInstance->PI->SendChannelNotice(channel, 0, std::string(user->nick) + " joined on official network business.");
                        }
@@ -105,7 +95,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;
@@ -143,7 +133,7 @@ class NetworkPrefix : public ModeHandler
                const UserMembList* cl = channel->GetUsers();
                std::vector<std::string> mode_junk;
                mode_junk.push_back(channel->name);
-               irc::modestacker modestack(ServerInstance, false);
+               irc::modestacker modestack(false);
                std::deque<std::string> stackresult;
 
                for (UserMembCIter i = cl->begin(); i != cl->end(); i++)
@@ -222,7 +212,6 @@ class NetworkPrefix : public ModeHandler
                        ((source == theuser) && (!adding)) ||
                        (ServerInstance->ULine(source->nick.c_str())) ||
                        (ServerInstance->ULine(source->server)) ||
-                       (!*source->server) ||
                        (!IS_LOCAL(source))
                        )
                {
@@ -245,8 +234,8 @@ class ModuleOjoin : public Module
 
  public:
 
-       ModuleOjoin(InspIRCd* Me)
-               : Module(Me), np(NULL), mycommand(Me, this)
+       ModuleOjoin()
+               : np(NULL), mycommand(this)
        {
                /* Load config stuff */
                OnRehash(NULL);
@@ -281,7 +270,7 @@ class ModuleOjoin : public Module
 
        void OnRehash(User* user)
        {
-               ConfigReader Conf(ServerInstance);
+               ConfigReader Conf;
 
                if (!np)
                {
@@ -299,7 +288,7 @@ class ModuleOjoin : public Module
 
        ModResult OnUserPreKick(User* source, Membership* memb, const std::string &reason)
        {
-               if ((ServerInstance->ULine(source->nick.c_str())) || (ServerInstance->ULine(source->server)) || (!*source->server))
+               if ((ServerInstance->ULine(source->nick.c_str())) || ServerInstance->ULine(source->server))
                        return MOD_RES_PASSTHRU;
 
                // Don't do anything if they're not +Y
@@ -316,7 +305,6 @@ class ModuleOjoin : public Module
 
        ~ModuleOjoin()
        {
-               ServerInstance->Modes->DelMode(np);
                delete np;
        }