diff options
-rw-r--r-- | src/modes/umode_s.cpp | 2 | ||||
-rw-r--r-- | src/users.cpp | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/modes/umode_s.cpp b/src/modes/umode_s.cpp index 93bc60cac..0f1764a7e 100644 --- a/src/modes/umode_s.cpp +++ b/src/modes/umode_s.cpp @@ -30,8 +30,8 @@ ModeAction ModeUserServerNoticeMask::OnModeChange(User* source, User* dest, Chan if (!dest->modes[UM_SNOMASK]) dest->snomasks.reset(); - parameter = dest->ProcessNoticeMasks(parameter.c_str()); dest->modes[UM_SNOMASK] = true; + parameter = dest->ProcessNoticeMasks(parameter.c_str()); return MODEACTION_ALLOW; } else diff --git a/src/users.cpp b/src/users.cpp index 0a196d798..a8a1ba6b3 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -90,6 +90,12 @@ std::string User::ProcessNoticeMasks(const char *sm) *c++; } + std::string s = this->FormatNoticeMasks(); + if (s.length() == 0) + { + this->modes[UM_SNOMASK] = false; + } + return output; } |