summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-17 11:58:31 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-17 11:58:31 +0000
commita99351314824c53f0809e86582c65ffaf6f928c7 (patch)
treed0c0e5ea12a19d40f316e53d8414849ba9300312
parent1ff26bac16487869af7a5e4ebfa1219096c9327b (diff)
Remove debug from snomask flushing, and send ALL snotices globally automagically (this probably means that calling SendSNONotice calls can be removed from places where they were added individually. XXX this needs fixing in two places: some snomasks are entirely local (local connect/quit) and some individual snotices may wish to be local only (though I can't think of any right now)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9525 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/snomasks.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/snomasks.cpp b/src/snomasks.cpp
index 6385af9c0..08b98c002 100644
--- a/src/snomasks.cpp
+++ b/src/snomasks.cpp
@@ -122,14 +122,13 @@ void Snomask::Flush()
if (this->LastMessage.empty())
return;
- ServerInstance->Logs->Log("SNOMASK", DEBUG, "Flushing snomask %s", this->Description.c_str());
-
/* Only opers can receive snotices, so we iterate the oper list */
for (std::list<User*>::iterator i = ServerInstance->Users->all_opers.begin(); i != ServerInstance->Users->all_opers.end(); i++)
{
User* a = *i;
if (IS_LOCAL(a) && a->IsModeSet('s') && a->IsModeSet('n') && a->IsNoticeMaskSet(MySnomask) && !a->quitting)
{
+
a->WriteServ("NOTICE %s :*** %s: %s", a->nick, this->Description.c_str(), this->LastMessage.c_str());
if (Count > 1)
{
@@ -138,6 +137,10 @@ void Snomask::Flush()
}
}
+ ServerInstance->PI->SendSNONotice(MySnomask, this->Description + ": " + this->LastMessage);
+ if (Count > 1)
+ ServerInstance->PI->SendSNONotice(MySnomask, this->Description + ": (last message repeated " + Count + " times)");
+
LastMessage = "";
Count = 1;
}