]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_ojoin.cpp
m_spanningtree Remove unneeded #includes
[user/henk/code/inspircd.git] / src / modules / m_ojoin.cpp
index fcb26775017ef391a5d80117a92820d129f4b1f0..f630f827c2a714e3e4d3631e869b17c2a5a2c7d7 100644 (file)
@@ -76,7 +76,7 @@ class CommandOjoin : public Command
                        if (notice)
                        {
                                channel = ServerInstance->FindChan(parameters[0]);
-                               channel->WriteChannelWithServ(ServerInstance->Config->ServerName.c_str(), "NOTICE %s :%s joined on official network business.",
+                               channel->WriteChannelWithServ(ServerInstance->Config->ServerName, "NOTICE %s :%s joined on official network business.",
                                        parameters[0].c_str(), user->nick.c_str());
                                ServerInstance->PI->SendChannelNotice(channel, 0, user->nick + " joined on official network business.");
                        }
@@ -87,8 +87,10 @@ class CommandOjoin : public Command
                        // they're already in the channel
                        std::vector<std::string> modes;
                        modes.push_back(parameters[0]);
-                       modes.push_back("+Y");
+                       modes.push_back(op ? "+Yo" : "+Y");
                        modes.push_back(user->nick);
+                       if (op)
+                               modes.push_back(user->nick);
                        ServerInstance->SendGlobalMode(modes, ServerInstance->FakeClient);
                }
                return CMD_SUCCESS;
@@ -114,7 +116,7 @@ class NetworkPrefix : public ModeHandler
                std::vector<std::string> mode_junk;
                mode_junk.push_back(channel->name);
                irc::modestacker modestack(false);
-               std::deque<std::string> stackresult;
+               std::vector<std::string> stackresult;
 
                for (UserMembCIter i = cl->begin(); i != cl->end(); i++)
                {
@@ -188,10 +190,10 @@ class ModuleOjoin : public Module
                ServerInstance->Modules->AddService(mycommand);
 
                Implementation eventlist[] = { I_OnUserPreJoin, I_OnUserPreKick, I_OnRehash };
-               ServerInstance->Modules->Attach(eventlist, this, 3);
+               ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
        }
 
-       ModResult OnUserPreJoin(User *user, Channel *chan, const char *cname, std::string &privs, const std::string &keygiven)
+       ModResult OnUserPreJoin(User* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven)
        {
                if (mycommand.active)
                {
@@ -253,4 +255,3 @@ class ModuleOjoin : public Module
 };
 
 MODULE_INIT(ModuleOjoin)
-