diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-11-26 18:04:47 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-11-26 18:04:47 +0000 |
commit | 2e52ff280dca14d1598b84fab7a8c2e93fa30910 (patch) | |
tree | b61c54d4e0921b6349ff6b5aeb36008e52973076 /src | |
parent | 69488d0a42ae22d1cf39244100403b63075ad4c3 (diff) |
Add extra parameter to OnUserPreNotice and OnUserPrePrivmsg, CUList &exempt_list, a list of users NOT to write to. By default it just contains the sender, you can add more.
This also bumps the module api version by one. added "CUList fixme" to peaveys module just so it builds, as this will be refactored to use the new feature that was just added :)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5806 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.cpp | 26 | ||||
-rw-r--r-- | src/cmd_notice.cpp | 13 | ||||
-rw-r--r-- | src/cmd_privmsg.cpp | 15 | ||||
-rw-r--r-- | src/modules.cpp | 4 | ||||
-rw-r--r-- | src/modules/m_blockcaps.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_blockcolor.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_censor.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_chanfilter.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_dccallow.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_filter.h | 10 | ||||
-rw-r--r-- | src/modules/m_noctcp.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_nonotice.cpp | 2 | ||||
-rw-r--r-- | src/modules/m_restrictbanned.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_restrictmsg.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_services.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_services_account.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_silence.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_silence_ext.cpp | 9 | ||||
-rw-r--r-- | src/modules/m_stripcolor.cpp | 6 |
19 files changed, 93 insertions, 58 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index 948b49a0b..7a6f85469 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -695,7 +695,22 @@ void chanrec::WriteAllExceptSender(userrec* user, bool serversource, char status this->WriteAllExceptSender(user, serversource, status, std::string(textbuffer)); } -void chanrec::WriteAllExceptSender(userrec* user, bool serversource, char status, const std::string& text) +void chanrec::WriteAllExcept(userrec* user, bool serversource, char status, CUList &except_list, char* text, ...) +{ + char textbuffer[MAXBUF]; + va_list argsPtr; + + if (!text) + return; + + va_start(argsPtr, text); + vsnprintf(textbuffer, MAXBUF, text, argsPtr); + va_end(argsPtr); + + this->WriteAllExcept(user, serversource, status, except_list, std::string(textbuffer)); +} + +void chanrec::WriteAllExcept(userrec* user, bool serversource, char status, CUList &except_list, const std::string &text) { CUList *ulist; @@ -717,7 +732,7 @@ void chanrec::WriteAllExceptSender(userrec* user, bool serversource, char status for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++) { - if ((IS_LOCAL(i->second)) && (user != i->second)) + if ((IS_LOCAL(i->second)) && (except_list.find(i->second) == except_list.end())) { if (serversource) i->second->WriteServ(text); @@ -727,6 +742,13 @@ void chanrec::WriteAllExceptSender(userrec* user, bool serversource, char status } } +void chanrec::WriteAllExceptSender(userrec* user, bool serversource, char status, const std::string& text) +{ + CUList except_list; + except_list[user] = user; + this->WriteAllExcept(user, serversource, status, except_list, std::string(text)); +} + /* * return a count of the users on a specific channel accounting for * invisible users who won't increase the count. e.g. for /LIST diff --git a/src/cmd_notice.cpp b/src/cmd_notice.cpp index d947c70be..c9c06ff67 100644 --- a/src/cmd_notice.cpp +++ b/src/cmd_notice.cpp @@ -32,6 +32,8 @@ CmdResult cmd_notice::Handle (const char** parameters, int pcnt, userrec *user) userrec *dest; chanrec *chan; + CUList exempt_list; + user->idle_lastmsg = ServerInstance->Time(); if (ServerInstance->Parser->LoopCall(user, this, parameters, pcnt, 0)) @@ -40,7 +42,7 @@ CmdResult cmd_notice::Handle (const char** parameters, int pcnt, userrec *user) { int MOD_RESULT = 0; std::string temp = parameters[1]; - FOREACH_RESULT(I_OnUserPreNotice,OnUserPreNotice(user,(void*)parameters[0],TYPE_SERVER,temp,0)); + FOREACH_RESULT(I_OnUserPreNotice,OnUserPreNotice(user,(void*)parameters[0],TYPE_SERVER,temp,0,exempt_list)); if (MOD_RESULT) return CMD_FAILURE; parameters[1] = (char*)temp.c_str(); @@ -62,6 +64,9 @@ CmdResult cmd_notice::Handle (const char** parameters, int pcnt, userrec *user) if (*parameters[0] == '#') { chan = ServerInstance->FindChan(parameters[0]); + + exempt_list[user] = user; + if (chan) { if (IS_LOCAL(user)) @@ -81,7 +86,7 @@ CmdResult cmd_notice::Handle (const char** parameters, int pcnt, userrec *user) int MOD_RESULT = 0; std::string temp = parameters[1]; - FOREACH_RESULT(I_OnUserPreNotice,OnUserPreNotice(user,chan,TYPE_CHANNEL,temp,status)); + FOREACH_RESULT(I_OnUserPreNotice,OnUserPreNotice(user,chan,TYPE_CHANNEL,temp,status, exempt_list)); if (MOD_RESULT) { return CMD_FAILURE; } @@ -93,7 +98,7 @@ CmdResult cmd_notice::Handle (const char** parameters, int pcnt, userrec *user) return CMD_FAILURE; } - chan->WriteAllExceptSender(user, false, status, "NOTICE %s :%s", chan->name, parameters[1]); + chan->WriteAllExcept(user, false, status, exempt_list, "NOTICE %s :%s", chan->name, parameters[1]); FOREACH_MOD(I_OnUserNotice,OnUserNotice(user,chan,TYPE_CHANNEL,parameters[1],status)); } @@ -112,7 +117,7 @@ CmdResult cmd_notice::Handle (const char** parameters, int pcnt, userrec *user) int MOD_RESULT = 0; std::string temp = parameters[1]; - FOREACH_RESULT(I_OnUserPreNotice,OnUserPreNotice(user,dest,TYPE_USER,temp,0)); + FOREACH_RESULT(I_OnUserPreNotice,OnUserPreNotice(user,dest,TYPE_USER,temp,0,exempt_list)); if (MOD_RESULT) { return CMD_FAILURE; } diff --git a/src/cmd_privmsg.cpp b/src/cmd_privmsg.cpp index aba8ae12d..d3d7e483e 100644 --- a/src/cmd_privmsg.cpp +++ b/src/cmd_privmsg.cpp @@ -33,6 +33,8 @@ CmdResult cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user) userrec *dest; chanrec *chan; + CUList except_list; + user->idle_lastmsg = ServerInstance->Time(); if (ServerInstance->Parser->LoopCall(user, this, parameters, pcnt, 0)) @@ -42,7 +44,7 @@ CmdResult cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user) { int MOD_RESULT = 0; std::string temp = parameters[1]; - FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,(void*)parameters[0],TYPE_SERVER,temp,0)); + FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,(void*)parameters[0],TYPE_SERVER,temp,0,except_list)); if (MOD_RESULT) return CMD_FAILURE; parameters[1] = (char*)temp.c_str(); @@ -64,6 +66,9 @@ CmdResult cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user) if (parameters[0][0] == '#') { chan = ServerInstance->FindChan(parameters[0]); + + except_list[user] = user; + if (chan) { if (IS_LOCAL(user)) @@ -82,7 +87,7 @@ CmdResult cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user) int MOD_RESULT = 0; std::string temp = parameters[1]; - FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,chan,TYPE_CHANNEL,temp,status)); + FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,chan,TYPE_CHANNEL,temp,status,except_list)); if (MOD_RESULT) { return CMD_FAILURE; } @@ -93,8 +98,8 @@ CmdResult cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user) user->WriteServ("412 %s No text to send", user->nick); return CMD_FAILURE; } - - chan->WriteAllExceptSender(user, false, status, "PRIVMSG %s :%s", chan->name, parameters[1]); + + chan->WriteAllExcept(user, false, status, except_list, "PRIVMSG %s :%s", chan->name, parameters[1]); FOREACH_MOD(I_OnUserMessage,OnUserMessage(user,chan,TYPE_CHANNEL,parameters[1],status)); } else @@ -118,7 +123,7 @@ CmdResult cmd_privmsg::Handle (const char** parameters, int pcnt, userrec *user) int MOD_RESULT = 0; std::string temp = parameters[1]; - FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,dest,TYPE_USER,temp,0)); + FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,dest,TYPE_USER,temp,0,except_list)); if (MOD_RESULT) { return CMD_FAILURE; } diff --git a/src/modules.cpp b/src/modules.cpp index 8f5e427d9..a8e7a2f75 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -122,8 +122,8 @@ void Module::OnPostOper(userrec* user, const std::string &opertype) { }; void Module::OnInfo(userrec* user) { }; void Module::OnWhois(userrec* source, userrec* dest) { }; int Module::OnUserPreInvite(userrec* source,userrec* dest,chanrec* channel) { return 0; }; -int Module::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text,char status) { return 0; }; -int Module::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text,char status) { return 0; }; +int Module::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text,char status, CUList &exempt_list) { return 0; }; +int Module::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text,char status, CUList &exempt_list) { return 0; }; int Module::OnUserPreNick(userrec* user, const std::string &newnick) { return 0; }; void Module::OnUserPostNick(userrec* user, const std::string &oldnick) { }; int Module::OnAccessCheck(userrec* source,userrec* dest,chanrec* channel,int access_type) { return ACR_DEFAULT; }; diff --git a/src/modules/m_blockcaps.cpp b/src/modules/m_blockcaps.cpp index e4f655760..830b05ae9 100644 --- a/src/modules/m_blockcaps.cpp +++ b/src/modules/m_blockcaps.cpp @@ -72,7 +72,7 @@ public: List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = 1; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_CHANNEL) { @@ -96,9 +96,9 @@ public: return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreMessage(user,dest,target_type,text,status); + return OnUserPreMessage(user,dest,target_type,text,status,exempt_list); } virtual ~ModuleBlockCAPS() diff --git a/src/modules/m_blockcolor.cpp b/src/modules/m_blockcolor.cpp index 967e8fd02..f62e54613 100644 --- a/src/modules/m_blockcolor.cpp +++ b/src/modules/m_blockcolor.cpp @@ -73,7 +73,7 @@ class ModuleBlockColour : public Module List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = 1; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_CHANNEL) { @@ -102,9 +102,9 @@ class ModuleBlockColour : public Module return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreMessage(user,dest,target_type,text,status); + return OnUserPreMessage(user,dest,target_type,text,status,exempt_list); } virtual ~ModuleBlockColour() diff --git a/src/modules/m_censor.cpp b/src/modules/m_censor.cpp index 5cdee215d..657ad7f44 100644 --- a/src/modules/m_censor.cpp +++ b/src/modules/m_censor.cpp @@ -139,7 +139,7 @@ class ModuleCensor : public Module } // format of a config entry is <badword text="shit" replace="poo"> - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { bool active = false; irc::string text2 = text.c_str(); @@ -168,9 +168,9 @@ class ModuleCensor : public Module return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreMessage(user,dest,target_type,text,status); + return OnUserPreMessage(user,dest,target_type,text,status,exempt_list); } virtual void OnRehash(const std::string ¶meter) diff --git a/src/modules/m_chanfilter.cpp b/src/modules/m_chanfilter.cpp index c600740da..51bc2092a 100644 --- a/src/modules/m_chanfilter.cpp +++ b/src/modules/m_chanfilter.cpp @@ -116,7 +116,7 @@ class ModuleChanFilter : public Module return 0; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_CHANNEL) { @@ -130,9 +130,9 @@ class ModuleChanFilter : public Module cf->DoCleanup(target_type, item); } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreMessage(user,dest,target_type,text,status); + return OnUserPreMessage(user,dest,target_type,text,status,exempt_list); } virtual void OnSyncChannel(chanrec* chan, Module* proto, void* opaque) diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp index 5fb64a27e..95644a4e9 100644 --- a/src/modules/m_dccallow.cpp +++ b/src/modules/m_dccallow.cpp @@ -289,12 +289,12 @@ class ModuleDCCAllow : public Module return 0; } - virtual int OnUserPreMessage(userrec* user, void* dest, int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user, void* dest, int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreNotice(user, dest, target_type, text, status); + return OnUserPreNotice(user, dest, target_type, text, status, exempt_list); } - virtual int OnUserPreNotice(userrec* user, void* dest, int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user, void* dest, int target_type, std::string &text, char status, CUList &exempt_list) { Expire(); diff --git a/src/modules/m_filter.h b/src/modules/m_filter.h index 0e0ca067e..abacb1f1d 100644 --- a/src/modules/m_filter.h +++ b/src/modules/m_filter.h @@ -46,7 +46,7 @@ class FilterBase : public Module FilterBase(InspIRCd* Me, const std::string &source); virtual ~FilterBase(); virtual void Implements(char* List); - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status); + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list); virtual FilterResult* FilterMatch(const std::string &text) = 0; virtual bool DeleteFilter(const std::string &freeform) = 0; @@ -54,7 +54,7 @@ class FilterBase : public Module virtual void SendFilter(Module* proto, void* opaque, FilterResult* iter); virtual std::pair<bool, std::string> AddFilter(const std::string &freeform, const std::string &type, const std::string &reason, long duration) = 0; - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status); + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list); virtual void OnRehash(const std::string ¶meter); virtual Version GetVersion(); std::string EncodeFilter(FilterResult* filter); @@ -168,12 +168,12 @@ void FilterBase::Implements(char* List) List[I_OnStats] = List[I_OnSyncOtherMetaData] = List[I_OnDecodeMetaData] = List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = List[I_OnRehash] = 1; } -int FilterBase::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) +int FilterBase::OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreNotice(user,dest,target_type,text,status); + return OnUserPreNotice(user,dest,target_type,text,status,exempt_list); } -int FilterBase::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) +int FilterBase::OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { /* Leave ulines alone */ if ((ServerInstance->ULine(user->server)) || (!IS_LOCAL(user))) diff --git a/src/modules/m_noctcp.cpp b/src/modules/m_noctcp.cpp index 351c8631e..2e62c8e51 100644 --- a/src/modules/m_noctcp.cpp +++ b/src/modules/m_noctcp.cpp @@ -73,12 +73,12 @@ class ModuleNoCTCP : public Module List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = 1; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreNotice(user,dest,target_type,text,status); + return OnUserPreNotice(user,dest,target_type,text,status,exempt_list); } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_CHANNEL) { diff --git a/src/modules/m_nonotice.cpp b/src/modules/m_nonotice.cpp index 6286321b3..2c99a89e1 100644 --- a/src/modules/m_nonotice.cpp +++ b/src/modules/m_nonotice.cpp @@ -70,7 +70,7 @@ class ModuleNoNotice : public Module List[I_OnUserPreNotice] = 1; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_CHANNEL) { diff --git a/src/modules/m_restrictbanned.cpp b/src/modules/m_restrictbanned.cpp index cdd80e741..51ff39772 100644 --- a/src/modules/m_restrictbanned.cpp +++ b/src/modules/m_restrictbanned.cpp @@ -88,12 +88,12 @@ class ModuleRestrictBanned : public Module return CheckRestricted(user, channel, "change the topic"); } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreNotice(user,dest,target_type,text,status); + return OnUserPreNotice(user,dest,target_type,text,status,exempt_list); } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_CHANNEL) { diff --git a/src/modules/m_restrictmsg.cpp b/src/modules/m_restrictmsg.cpp index 9a9c9ad5f..12130f0a1 100644 --- a/src/modules/m_restrictmsg.cpp +++ b/src/modules/m_restrictmsg.cpp @@ -44,7 +44,7 @@ class ModuleRestrictMsg : public Module List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = 1; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_USER) { @@ -65,9 +65,9 @@ class ModuleRestrictMsg : public Module return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return this->OnUserPreMessage(user,dest,target_type,text,status); + return this->OnUserPreMessage(user,dest,target_type,text,status,exempt_list); } virtual ~ModuleRestrictMsg() diff --git a/src/modules/m_services.cpp b/src/modules/m_services.cpp index 457228234..b746f6492 100644 --- a/src/modules/m_services.cpp +++ b/src/modules/m_services.cpp @@ -227,7 +227,7 @@ class ModuleServices : public Module } } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_CHANNEL) { @@ -262,9 +262,9 @@ class ModuleServices : public Module return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreMessage(user,dest,target_type,text,status); + return OnUserPreMessage(user,dest,target_type,text,status, exempt_list); } virtual int OnUserPreJoin(userrec* user, chanrec* chan, const char* cname, std::string &privs) diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index 562e98fa4..49ce777e2 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -150,7 +150,7 @@ class ModuleServicesAccount : public Module List[I_OnSyncUserMetaData] = List[I_OnUserQuit] = List[I_OnCleanup] = List[I_OnDecodeMetaData] = 1; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { std::string *account; user->GetExt("accountname", account); @@ -192,9 +192,9 @@ class ModuleServicesAccount : public Module return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreMessage(user, dest, target_type, text, status); + return OnUserPreMessage(user, dest, target_type, text, status, exempt_list); } virtual int OnUserPreJoin(userrec* user, chanrec* chan, const char* cname, std::string &privs) diff --git a/src/modules/m_silence.cpp b/src/modules/m_silence.cpp index 595c3505e..035be733c 100644 --- a/src/modules/m_silence.cpp +++ b/src/modules/m_silence.cpp @@ -166,7 +166,7 @@ class ModuleSilence : public Module output = output + " SILENCE=999"; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { // im not sure how unreal's silence operates but ours is sensible. It blocks notices and // privmsgs from people on the silence list, directed privately at the user. @@ -191,9 +191,9 @@ class ModuleSilence : public Module return 0; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreNotice(user,dest,target_type,text,status); + return OnUserPreNotice(user,dest,target_type,text,status,exempt_list); } virtual ~ModuleSilence() diff --git a/src/modules/m_silence_ext.cpp b/src/modules/m_silence_ext.cpp index de01f43ac..d3f70411d 100644 --- a/src/modules/m_silence_ext.cpp +++ b/src/modules/m_silence_ext.cpp @@ -276,7 +276,7 @@ class ModuleSilence : public Module output = output + " ESILENCE SILENCE=999"; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { if (target_type == TYPE_USER) { @@ -285,7 +285,7 @@ class ModuleSilence : public Module return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { return MatchPattern((userrec*)dest, user, SILENCE_NOTICE); } @@ -325,6 +325,9 @@ class ModuleSilence : public Module * on the channel. This code is from channels.cpp, and should also be changed if channels.cpp * updates it's corresponding code */ + + CUList fixme; + if ((validated) && (command == "PRIVMSG")) { char status = 0; @@ -356,7 +359,7 @@ class ModuleSilence : public Module int MOD_RESULT = 0; std::string temp = parameters[1]; - FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,chan,TYPE_CHANNEL,temp,status)); + FOREACH_RESULT(I_OnUserPreMessage,OnUserPreMessage(user,chan,TYPE_CHANNEL,temp,status,fixme)); if (MOD_RESULT) { return 1; } diff --git a/src/modules/m_stripcolor.cpp b/src/modules/m_stripcolor.cpp index 723225cca..3537c899d 100644 --- a/src/modules/m_stripcolor.cpp +++ b/src/modules/m_stripcolor.cpp @@ -176,7 +176,7 @@ class ModuleStripColor : public Module text = sentence; } - virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { bool active = false; if (target_type == TYPE_USER) @@ -196,9 +196,9 @@ class ModuleStripColor : public Module return 0; } - virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status) + virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { - return OnUserPreMessage(user,dest,target_type,text,status); + return OnUserPreMessage(user,dest,target_type,text,status,exempt_list); } virtual Version GetVersion() |