diff options
author | Attila Molnar <attilamolnar@hush.com> | 2014-01-20 17:05:01 +0100 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2014-01-20 17:05:01 +0100 |
commit | b8f0e349ce8891d6236fc026c47139af1f05912c (patch) | |
tree | 3144fa1f633749997e558c09d96755344c495ac1 /src/modules/m_svshold.cpp | |
parent | ef264e2dca03126e1ea38ee05594bd015384622b (diff) |
m_svshold Add config option to hide snotices
Diffstat (limited to 'src/modules/m_svshold.cpp')
-rw-r--r-- | src/modules/m_svshold.cpp | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/modules/m_svshold.cpp b/src/modules/m_svshold.cpp index d8176043e..e666b0fe2 100644 --- a/src/modules/m_svshold.cpp +++ b/src/modules/m_svshold.cpp @@ -25,6 +25,11 @@ /* $ModDesc: Implements SVSHOLD. Like Q:Lines, but can only be added/removed by Services. */ +namespace +{ + bool silent; +} + /** Holds a SVSHold item */ class SVSHold : public XLine @@ -58,8 +63,11 @@ public: void DisplayExpiry() { - ServerInstance->SNO->WriteToSnoMask('x',"Removing expired SVSHOLD %s (set by %s %ld seconds ago)", - this->nickname.c_str(), this->source.c_str(), (long int)(ServerInstance->Time() - this->set_time)); + if (!silent) + { + ServerInstance->SNO->WriteToSnoMask('x',"Removing expired SVSHOLD %s (set by %s %ld seconds ago)", + this->nickname.c_str(), this->source.c_str(), (long int)(ServerInstance->Time() - this->set_time)); + } } const char* Displayable() @@ -114,7 +122,8 @@ class CommandSvshold : public Command { if (ServerInstance->XLines->DelLine(parameters[0].c_str(), "SVSHOLD", user)) { - ServerInstance->SNO->WriteToSnoMask('x',"%s removed SVSHOLD on %s",user->nick.c_str(),parameters[0].c_str()); + if (!silent) + ServerInstance->SNO->WriteToSnoMask('x',"%s removed SVSHOLD on %s",user->nick.c_str(),parameters[0].c_str()); } else { @@ -132,6 +141,9 @@ class CommandSvshold : public Command if (ServerInstance->XLines->AddLine(r, user)) { + if (silent) + return CMD_SUCCESS; + if (!duration) { ServerInstance->SNO->WriteGlobalSno('x', "%s added permanent SVSHOLD for %s: %s", user->nick.c_str(), parameters[0].c_str(), parameters[2].c_str()); @@ -174,8 +186,15 @@ class ModuleSVSHold : public Module { ServerInstance->XLines->RegisterFactory(&s); ServerInstance->Modules->AddService(cmd); - Implementation eventlist[] = { I_OnUserPreNick, I_OnStats }; + Implementation eventlist[] = { I_OnUserPreNick, I_OnStats, I_OnRehash }; ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation)); + OnRehash(NULL); + } + + void OnRehash(User* user) + { + ConfigTag* tag = ServerInstance->Config->ConfValue("svshold"); + silent = tag->getBool("silent"); } virtual ModResult OnStats(char symbol, User* user, string_list &out) |