diff options
Diffstat (limited to 'src/users.cpp')
-rw-r--r-- | src/users.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/users.cpp b/src/users.cpp index fd0a6f8dc..7d2d8549a 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -98,6 +98,24 @@ std::string userrec::ProcessNoticeMasks(const char *sm) case '-': adding = false; break; + case '*': + for (unsigned char d = 'A'; d <= 'z'; d++) + { + if (ServerInstance->SNO->IsEnabled(d)) + { + if ((!IsNoticeMaskSet(d) && adding) || (IsNoticeMaskSet(d) && !adding)) + { + if ((oldadding != adding) || (!output.length())) + output += (adding ? '+' : '-'); + + this->SetNoticeMask(d, adding); + + output += d; + } + } + oldadding = adding; + } + break; default: if ((*c >= 'A') && (*c <= 'z') && (ServerInstance->SNO->IsEnabled(*c))) { |