]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
Add extra parameter to MySQLresult and SQLresult
[user/henk/code/inspircd.git] / src / mode.cpp
index c3153dfee8f9dbf29cbe42207fbfae8eaca0a5f6..86b0024c0432df2fd2ebf999b6c50a54487192ee 100644 (file)
@@ -63,6 +63,8 @@ using namespace std;
 #include "modes/umode_i.h"
 /* +o (operator) */
 #include "modes/umode_o.h"
+/* +n (notice mask - our implementation of snomasks) */
+#include "modes/umode_n.h"
 
 extern int MODCOUNT;
 extern std::vector<Module*> modules;
@@ -244,14 +246,16 @@ void ModeParser::DisplayCurrentModes(userrec *user, userrec* targetuser, chanrec
        {
                /* Display user's current mode string */
                WriteServ(user->fd,"221 %s :+%s",targetuser->nick,targetuser->FormatModes());
+               WriteServ(user->fd, "008 %s :+%s", targetuser->nick, targetuser->FormatNoticeMasks());
                return;
        }
+
        /* No such nick/channel */
        WriteServ(user->fd,"401 %s %s :No such nick/channel",user->nick, text);
        return;
 }
 
-void ModeParser::Process(char **parameters, int pcnt, userrec *user, bool servermode)
+void ModeParser::Process(const char** parameters, int pcnt, userrec *user, bool servermode)
 {
        std::string target = parameters[0];
        ModeType type = MODETYPE_USER;
@@ -310,7 +314,7 @@ void ModeParser::Process(char **parameters, int pcnt, userrec *user, bool server
                 */
                if ((type== MODETYPE_CHANNEL) && (pcnt == 2))
                {
-                       char* mode = parameters[1];
+                       const char* mode = parameters[1];
                        if (*mode == '+')
                                mode++;
 
@@ -478,7 +482,7 @@ void ModeParser::Process(char **parameters, int pcnt, userrec *user, bool server
 }
 
 
-void cmd_mode::Handle (char **parameters, int pcnt, userrec *user)
+void cmd_mode::Handle (const char** parameters, int pcnt, userrec *user)
 {
        if (!user)
                return;
@@ -620,7 +624,6 @@ ModeParser::ModeParser()
        this->AddMode(new ModeUserWallops, 'w');
        this->AddMode(new ModeUserInvisible, 'i');
        this->AddMode(new ModeUserOperator, 'o');
-
-       /* TODO: User modes +swio */
+       this->AddMode(new ModeUserServerNoticeMask, 'n');
 }