From 2e52ff280dca14d1598b84fab7a8c2e93fa30910 Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 26 Nov 2006 18:04:47 +0000 Subject: 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 --- src/cmd_notice.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/cmd_notice.cpp') 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; } -- cgit v1.3.1-10-gc9f91