]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_silence_ext.cpp
Port bindings for gnutls now bind via ip:port, rather than on all ports for that...
[user/henk/code/inspircd.git] / src / modules / m_silence_ext.cpp
index 3cc40df2a274a9813a7b91da6fa731150cab9f17..2f1654016aa8c14b64dea0ea131f3f6c4d6b7e51 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2008 InspIRCd Development Team
  * See: http://www.inspircd.org/wiki/index.php/Credits
  *
  * This program is free but copyrighted software; see
@@ -62,7 +62,7 @@ class CommandSilence : public Command
                TRANSLATE3(TR_TEXT, TR_TEXT, TR_END);
        }
 
-       CmdResult Handle (const char** parameters, int pcnt, User *user)
+       CmdResult Handle (const char* const* parameters, int pcnt, User *user)
        {
                if (!pcnt)
                {
@@ -75,10 +75,10 @@ class CommandSilence : public Command
                        {
                                for (silencelist::const_iterator c = sl->begin(); c != sl->end(); c++)
                                {
-                                       user->WriteServ("271 %s %s %s %s",user->nick, user->nick,c->first.c_str(), DecompPattern(c->second).c_str());
+                                       user->WriteNumeric(271, "%s %s %s %s",user->nick, user->nick,c->first.c_str(), DecompPattern(c->second).c_str());
                                }
                        }
-                       user->WriteServ("272 %s :End of Silence List",user->nick);
+                       user->WriteNumeric(272, "%s :End of Silence List",user->nick);
 
                        return CMD_LOCALONLY;
                }
@@ -118,17 +118,17 @@ class CommandSilence : public Command
                                                if (listitem == mask && i->second == pattern)
                                                {
                                                        sl->erase(i);
-                                                       user->WriteServ("950 %s %s :Removed %s %s from silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
+                                                       user->WriteNumeric(950, "%s %s :Removed %s %s from silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
                                                        if (!sl->size())
                                                        {
-                                                               DELETE(sl);
+                                                               delete sl;
                                                                user->Shrink("silence_list");
                                                        }
                                                        return CMD_SUCCESS;
                                                }
                                        }
                                }
-                               user->WriteServ("952 %s %s :%s %s does not exist on your silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
+                               user->WriteNumeric(952, "%s %s :%s %s does not exist on your silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
                        }
                        else if (action == '+')
                        {
@@ -143,7 +143,7 @@ class CommandSilence : public Command
                                }
                                if (sl->size() > maxsilence)
                                {
-                                       user->WriteServ("952 %s %s :Your silence list is full",user->nick, user->nick);
+                                       user->WriteNumeric(952, "%s %s :Your silence list is full",user->nick, user->nick);
                                        return CMD_FAILURE;
                                }
                                for (silencelist::iterator n = sl->begin(); n != sl->end();  n++)
@@ -151,7 +151,7 @@ class CommandSilence : public Command
                                        irc::string listitem = n->first.c_str();
                                        if (listitem == mask && n->second == pattern)
                                        {
-                                               user->WriteServ("952 %s %s :%s %s is already on your silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
+                                               user->WriteNumeric(952, "%s %s :%s %s is already on your silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
                                                return CMD_FAILURE;
                                        }
                                }
@@ -163,7 +163,7 @@ class CommandSilence : public Command
                                {
                                        sl->push_back(silenceset(mask,pattern));
                                }
-                               user->WriteServ("951 %s %s :Added %s %s to silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
+                               user->WriteNumeric(951, "%s %s :Added %s %s to silence list",user->nick, user->nick, mask.c_str(), DecompPattern(pattern).c_str());
                                return CMD_SUCCESS;
                        }
                }
@@ -194,6 +194,7 @@ class CommandSilence : public Command
                                        p |= SILENCE_CNOTICE;
                                        break;
                                case 'a':
+                               case '*':
                                        p |= SILENCE_ALL;
                                        break;
                                case 'x':
@@ -241,6 +242,8 @@ class ModuleSilence : public Module
                OnRehash(NULL, "");
                mycommand = new CommandSilence(ServerInstance,maxsilence);
                ServerInstance->AddCommand(mycommand);
+               Implementation eventlist[] = { I_OnRehash, I_OnBuildExemptList, I_OnUserQuit, I_On005Numeric, I_OnUserPreNotice, I_OnUserPreMessage, I_OnUserPreInvite };
+               ServerInstance->Modules->Attach(eventlist, this, 7);
        }
 
        virtual void OnRehash(User* user, const std::string &parameter)
@@ -251,10 +254,6 @@ class ModuleSilence : public Module
                        maxsilence = 32;
        }
 
-       void Implements(char* List)
-       {
-               List[I_OnRehash] = List[I_OnBuildExemptList] = List[I_OnUserQuit] = List[I_On005Numeric] = List[I_OnUserPreNotice] = List[I_OnUserPreMessage] = List[I_OnUserPreInvite] = 1;
-       }
 
        virtual void OnUserQuit(User* user, const std::string &reason, const std::string &oper_message)
        {
@@ -263,7 +262,7 @@ class ModuleSilence : public Module
                user->GetExt("silence_list", sl);
                if (sl)
                {
-                       DELETE(sl);
+                       delete sl;
                        user->Shrink("silence_list");
                }
        }
@@ -336,7 +335,7 @@ class ModuleSilence : public Module
                return PreText(user, dest, target_type, text, status, exempt_list, SILENCE_NOTICE);
        }
 
-       virtual int OnUserPreInvite(User* source,User* dest,Channel* channel)
+       virtual int OnUserPreInvite(User* source,User* dest,Channel* channel, time_t timeout)
        {
                return MatchPattern(dest, source, SILENCE_INVITE);
        }
@@ -362,7 +361,7 @@ class ModuleSilence : public Module
        
        virtual Version GetVersion()
        {
-               return Version(1, 1, 0, 1, VF_COMMON | VF_VENDOR, API_VERSION);
+               return Version(1, 2, 0, 1, VF_COMMON | VF_VENDOR, API_VERSION);
        }
 };