]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
Remove ProtocolInterface::SendMode()
[user/henk/code/inspircd.git] / src / mode.cpp
index d24346e59f8d5e8601735cd06e7cbf5e330d1234..8081188f568e4a6f2ca4874ad6264448148da529 100644 (file)
@@ -375,6 +375,7 @@ void ModeParser::Process(const std::vector<std::string>& parameters, User* user,
        LastParse.clear();
        LastParseParams.clear();
        LastParseTranslate.clear();
+       LastChangeList.clear();
 
        if ((!targetchannel) && ((!targetuser) || (IS_SERVER(targetuser))))
        {
@@ -403,7 +404,7 @@ void ModeParser::Process(const std::vector<std::string>& parameters, User* user,
                return;
        }
 
-       std::string mode_sequence = parameters[1];
+       const std::string& mode_sequence = parameters[1];
 
        std::string output_mode;
        std::string output_parameters;
@@ -474,6 +475,7 @@ void ModeParser::Process(const std::vector<std::string>& parameters, User* user,
                        LastParseParams.push_back(parameter);
                        LastParseTranslate.push_back(mh->GetTranslateType());
                }
+               LastChangeList.push(mh, adding, parameter);
 
                if ((output_mode.length() + output_parameters.length() > 450)
                                || (output_mode.length() > 100)
@@ -493,15 +495,12 @@ void ModeParser::Process(const std::vector<std::string>& parameters, User* user,
                LastParse.append(output_mode);
                LastParse.append(output_parameters);
 
-               if (!(flags & MODE_LOCALONLY))
-                       ServerInstance->PI->SendMode(user, targetuser, targetchannel, LastParseParams, LastParseTranslate);
-
                if (targetchannel)
                        targetchannel->WriteChannel(user, "MODE " + LastParse);
                else
                        targetuser->WriteFrom(user, "MODE " + LastParse);
 
-               FOREACH_MOD(OnMode, (user, targetuser, targetchannel, LastParseParams, LastParseTranslate));
+               FOREACH_MOD(OnMode, (user, targetuser, targetchannel, LastChangeList, flags, output_mode));
        }
        else if (targetchannel && parameters.size() == 2)
        {
@@ -512,7 +511,7 @@ void ModeParser::Process(const std::vector<std::string>& parameters, User* user,
        }
 }
 
-void ModeParser::DisplayListModes(User* user, Channel* chan, std::string &mode_sequence)
+void ModeParser::DisplayListModes(User* user, Channel* chan, const std::string& mode_sequence)
 {
        seq++;