]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
trivial: Slight reformat of expiry of line message
[user/henk/code/inspircd.git] / src / mode.cpp
index 0436d04be107768f6490b5c3113b90e84d2b3668..5d93eb161afa8c22ffb5f6e8374538124f5808a7 100644 (file)
@@ -653,7 +653,7 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                                break;
                                        previously_set_k = true;
                                                
-                                       if (!*chan->key)
+                                       if (!chan->modes[CM_KEY])
                                        {
                                                MOD_RESULT = 0;
                                                FOREACH_RESULT(I_OnRawMode,OnRawMode(user, chan, 'k', parameters[param], true, 1));
@@ -664,6 +664,7 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                                        strlcpy(key,parameters[param++],32);
                                                        outpars[pc++] = key;
                                                        strlcpy(chan->key,key,MAXBUF);
+                                                       chan->modes[CM_KEY] = 1;
                                                        k_set = true;
                                                }
                                                else param++;
@@ -688,6 +689,7 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                                {
                                                        *outl++ = 'k';
                                                        *chan->key = 0;
+                                                       chan->modes[CM_KEY] = 0;
                                                        outpars[pc++] = key;
                                                }
                                        }
@@ -705,10 +707,11 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                         FOREACH_RESULT(I_OnRawMode,OnRawMode(user, chan, 'l', "", false, 0));
                                         if (!MOD_RESULT)
                                         {
-                                               if (chan->limit)
+                                               if (chan->modes[CM_LIMIT])
                                                {
                                                        *outl++ = 'l';
                                                        chan->limit = 0;
+                                                       chan->modes[CM_LIMIT] = 0;
                                                }
                                        }
                                }
@@ -753,6 +756,7 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                        if (chan->limit)
                                        {
                                                *outl++ = 'l';
+                                               chan->modes[CM_LIMIT] = 1;
                                                outpars[pc++] = parameters[param++];
                                                l_set = true;
                                        }
@@ -766,13 +770,13 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                 {
                                        if (mdir)
                                        {
-                                               if (!(chan->binarymodes & CM_INVITEONLY)) *outl++ = 'i';
-                                               chan->binarymodes |= CM_INVITEONLY;
+                                               if (!(chan->modes[CM_INVITEONLY])) *outl++ = 'i';
+                                               chan->modes[CM_INVITEONLY] = 1;
                                        }
                                        else
                                        {
-                                               if (chan->binarymodes & CM_INVITEONLY) *outl++ = 'i';
-                                               chan->binarymodes &= ~CM_INVITEONLY;
+                                               if (chan->modes[CM_INVITEONLY]) *outl++ = 'i';
+                                               chan->modes[CM_INVITEONLY] = 0;
                                        }
                                }
                        break;
@@ -784,13 +788,13 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                 {
                                        if (mdir)
                                         {
-                                               if (!(chan->binarymodes & CM_TOPICLOCK)) *outl++ = 't';
-                                                chan->binarymodes |= CM_TOPICLOCK;
+                                               if (!(chan->modes[CM_TOPICLOCK])) *outl++ = 't';
+                                                chan->modes[CM_TOPICLOCK] = 1;
                                         }
                                         else
                                         {
-                                               if (chan->binarymodes & CM_TOPICLOCK) *outl++ = 't';
-                                                chan->binarymodes &= ~CM_TOPICLOCK;
+                                               if (chan->modes[CM_TOPICLOCK]) *outl++ = 't';
+                                                chan->modes[CM_TOPICLOCK] = 0;
                                         }
                                }
                        break;
@@ -802,13 +806,13 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                 {
                                         if (mdir)
                                         {
-                                               if (!(chan->binarymodes & CM_NOEXTERNAL)) *outl++ = 'n';
-                                                chan->binarymodes |= CM_NOEXTERNAL;
+                                               if (!(chan->modes[CM_NOEXTERNAL])) *outl++ = 'n';
+                                                chan->modes[CM_NOEXTERNAL] = 1;
                                         }
                                         else
                                         {
-                                               if (chan->binarymodes & CM_NOEXTERNAL) *outl++ = 'n';
-                                                chan->binarymodes &= ~CM_NOEXTERNAL;
+                                               if (chan->modes[CM_NOEXTERNAL]) *outl++ = 'n';
+                                                chan->modes[CM_NOEXTERNAL] = 0;
                                         }
                                }
                        break;
@@ -820,13 +824,13 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                 {
                                         if (mdir)
                                         {
-                                                if (!(chan->binarymodes & CM_MODERATED)) *outl++ = 'm';
-                                                chan->binarymodes |= CM_MODERATED;
+                                                if (!(chan->modes[CM_MODERATED])) *outl++ = 'm';
+                                                chan->modes[CM_MODERATED] = 1;
                                         }
                                         else
                                         {
-                                                if (chan->binarymodes & CM_MODERATED) *outl++ = 'm';
-                                                chan->binarymodes &= ~CM_MODERATED;
+                                                if (chan->modes[CM_MODERATED]) *outl++ = 'm';
+                                                chan->modes[CM_MODERATED] = 0;
                                         }
                                }
                        break;
@@ -838,11 +842,11 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                 {
                                         if (mdir)
                                         {
-                                                if (!(chan->binarymodes & CM_SECRET)) *outl++ = 's';
-                                                chan->binarymodes |= CM_SECRET;
-                                                if (chan->binarymodes & CM_PRIVATE)
+                                                if (!(chan->modes[CM_SECRET])) *outl++ = 's';
+                                                chan->modes[CM_SECRET] = 1;
+                                                if (chan->modes[CM_PRIVATE])
                                                 {
-                                                        chan->binarymodes &= ~CM_PRIVATE;
+                                                        chan->modes[CM_PRIVATE] = 0;
                                                         if (mdir)
                                                         {
                                                                *outl++ = '-'; *outl++ = 'p'; *outl++ = '+';
@@ -851,8 +855,8 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                         }
                                         else
                                         {
-                                                if (chan->binarymodes & CM_SECRET) *outl++ = 's';
-                                                chan->binarymodes &= ~CM_SECRET;
+                                                if (chan->modes[CM_SECRET]) *outl++ = 's';
+                                                chan->modes[CM_SECRET] = 0;
                                         }
                                }
                        break;
@@ -864,14 +868,14 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                {
                                        if(mdir)
                                        {
-                                               if(!(chan->binarymodes & CM_PRIVATE))
+                                               if(!(chan->modes[CM_PRIVATE]))
                                                        *outl++ = 'p';
                                                
-                                               chan->binarymodes |= CM_PRIVATE;
+                                               chan->modes[CM_PRIVATE] = 1;
                                                
-                                               if(chan->binarymodes & CM_SECRET)
+                                               if(chan->modes[CM_SECRET])
                                                {
-                                                       chan->binarymodes &= ~CM_SECRET;
+                                                       chan->modes[CM_SECRET] = 0;
 
                                                        *outl++ = '-';
                                                        *outl++ = 's';
@@ -880,10 +884,10 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                                        }
                                        else
                                        {
-                                               if(chan->binarymodes & CM_PRIVATE)
+                                               if(chan->modes[CM_PRIVATE])
                                                        *outl++ = 'p';
                                                
-                                               chan->binarymodes &= ~CM_PRIVATE;
+                                               chan->modes[CM_PRIVATE] = 0;
                                        }
                                }
                                break;
@@ -891,7 +895,7 @@ void ModeParser::ProcessModes(char **parameters,userrec* user,chanrec *chan,int
                        default:
                                string_list p;
                                p.clear();
-                               bool x = chan->custom_modes[*modechar-65];
+                               bool x = chan->modes[*modechar-65];
                                if ((!x && !mdir) || (x && mdir))
                                {
                                        if (!ModeIsListMode(*modechar,MT_CHANNEL))