]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
Improve WriteLine, this should be quite an improvement as it prevents a temporary...
[user/henk/code/inspircd.git] / src / mode.cpp
index b32f31dde42ace14e36b0722edaf330b700440ff..90489ce62be995f69ae9a901e11c71ee14d82327 100644 (file)
@@ -534,7 +534,7 @@ void ModeParser::Process(const char** parameters, int pcnt, userrec *user, bool
                                else
                                {
                                        user->WriteTo(targetuser,"MODE %s %s%s",targetuser->nick,output_sequence.c_str(), parameter_list.str().c_str());
-                                       FOREACH_MOD(I_OnMode,OnMode(user, targetuser, TYPE_USER, output_sequence));
+                                       FOREACH_MOD(I_OnMode,OnMode(user, targetuser, TYPE_USER, output_sequence + parameter_list.str()));
                                        this->LastParse = targetuser->nick;
                                }
                        }
@@ -729,6 +729,9 @@ std::string ModeParser::ModeString(userrec* user, chanrec* channel)
        std::string types;
        std::string pars;
 
+       if (!channel || !user)
+               return "";
+
        for (unsigned char mode = 'A'; mode <= 'z'; mode++)
        {
                unsigned char pos = (mode-65) | MASK_CHANNEL;