]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_ojoin.cpp
Get rid of a bunch of memory-wasting C-style strings
[user/henk/code/inspircd.git] / src / modules / m_ojoin.cpp
index 63be08a0fb562e257092cf2ee75beea048fffc94..5bd9e3f91bb59355c791506e43aa7a759ba43b75 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.");
                        }
@@ -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