]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/users.cpp
FIX channel user count stuff. next to do, order the user count list
[user/henk/code/inspircd.git] / src / users.cpp
index f51656a55f388e791ced3d559dc10e90da79871d..f455bb8251e44bc985b2394b4cc5ee3a23e31a2a 100644 (file)
@@ -110,6 +110,60 @@ bool DoneClassesAndTypes(const char* tag)
        return true;
 }
 
+bool userrec::ProcessNoticeMasks(const char *sm)
+{
+       bool adding = true;
+       const char *c = sm;
+
+       while (c && *c)
+       {
+               switch (*c)
+               {
+                       case '+':
+                               adding = true;
+                               break;
+                       case '-':
+                               adding = false;
+                               break;
+                       default:
+                               if ((*c >= 'A') && (*c <= 'z'))
+                                       this->SetNoticeMask(*c, adding);
+                               break;
+               }
+
+               *c++;
+       }
+
+       return true;
+}
+
+bool userrec::IsNoticeMaskSet(unsigned char sm)
+{
+       return (snomasks[sm-65]);
+}
+
+void userrec::SetNoticeMask(unsigned char sm, bool value)
+{
+       snomasks[sm-65] = value;
+}
+
+const char* userrec::FormatNoticeMasks()
+{
+       static char data[MAXBUF];
+       int offset = 0;
+
+       for (int n = 0; n < 64; n++)
+       {
+               if (snomasks[n])
+                       data[offset++] = n+65;
+       }
+
+       data[offset] = 0;
+       return data;
+}
+
+
+
 bool userrec::IsModeSet(unsigned char m)
 {
        return (modes[m-65]);