]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_silence_ext.cpp
More AddModes fixes
[user/henk/code/inspircd.git] / src / modules / m_silence_ext.cpp
index e58e626c71f7464b36da365549c80f548d1c6408..3cc40df2a274a9813a7b91da6fa731150cab9f17 100644 (file)
  * ---------------------------------------------------
  */
 
-#include <stdio.h>
-#include <string>
-#include <vector>
-#include <stdarg.h>
-#include "users.h"
-#include "channels.h"
-#include "modules.h"
-#include "hashcomp.h"
 #include "inspircd.h"
 #include "wildcard.h"
 
@@ -59,17 +51,18 @@ static int SILENCE_ALL              = 0x0020; /* a  all, (pcint)          */
 static int SILENCE_EXCLUDE     = 0x0040; /* x  exclude this pattern  */
 
 
-class cmd_silence : public command_t
+class CommandSilence : public Command
 {
        unsigned int& maxsilence;
  public:
-       cmd_silence (InspIRCd* Instance, unsigned int &max) : command_t(Instance,"SILENCE", 0, 0), maxsilence(max)
+       CommandSilence (InspIRCd* Instance, unsigned int &max) : Command(Instance,"SILENCE", 0, 0), maxsilence(max)
        {
                this->source = "m_silence_ext.so";
                syntax = "{[+|-]<mask> <p|c|i|n|t|a|x>}";
+               TRANSLATE3(TR_TEXT, TR_TEXT, TR_END);
        }
 
-       CmdResult Handle (const char** parameters, int pcnt, userrec *user)
+       CmdResult Handle (const char** parameters, int pcnt, User *user)
        {
                if (!pcnt)
                {
@@ -131,7 +124,7 @@ class cmd_silence : public command_t
                                                                DELETE(sl);
                                                                user->Shrink("silence_list");
                                                        }
-                                                       break;
+                                                       return CMD_SUCCESS;
                                                }
                                        }
                                }
@@ -171,7 +164,7 @@ class cmd_silence : public command_t
                                        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());
-                               return CMD_LOCALONLY;
+                               return CMD_SUCCESS;
                        }
                }
                return CMD_LOCALONLY;
@@ -238,19 +231,19 @@ class cmd_silence : public command_t
 
 class ModuleSilence : public Module
 {
-       cmd_silence* mycommand;
+       CommandSilence* mycommand;
        unsigned int maxsilence;
  public:
  
        ModuleSilence(InspIRCd* Me)
-               : Module::Module(Me), maxsilence(32)
+               : Module(Me), maxsilence(32)
        {
                OnRehash(NULL, "");
-               mycommand = new cmd_silence(ServerInstance,maxsilence);
+               mycommand = new CommandSilence(ServerInstance,maxsilence);
                ServerInstance->AddCommand(mycommand);
        }
 
-       virtual void OnRehash(userrec* user, const std::string &parameter)
+       virtual void OnRehash(User* user, const std::string &parameter)
        {
                ConfigReader Conf(ServerInstance);
                maxsilence = Conf.ReadInteger("silence", "maxentries", 0, true);
@@ -263,7 +256,7 @@ class ModuleSilence : public Module
                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(userrec* user, const std::string &reason, const std::string &oper_message)
+       virtual void OnUserQuit(User* user, const std::string &reason, const std::string &oper_message)
        {
                // when the user quits tidy up any silence list they might have just to keep things tidy
                silencelist* sl;
@@ -281,7 +274,7 @@ class ModuleSilence : public Module
                output = output + " ESILENCE SILENCE=" + ConvToStr(maxsilence);
        }
 
-       virtual void OnBuildExemptList(MessageType message_type, chanrec* chan, userrec* sender, char status, CUList &exempt_list)
+       virtual void OnBuildExemptList(MessageType message_type, Channel* chan, User* sender, char status, CUList &exempt_list, const std::string &text)
        {
                int public_silence = (message_type == MSG_PRIVMSG ? SILENCE_CHANNEL : SILENCE_CNOTICE);
                CUList *ulist;
@@ -313,42 +306,42 @@ class ModuleSilence : public Module
                }
        }
 
-       virtual int PreText(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list, int silence_type)
+       virtual int PreText(User* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list, int silence_type)
        {
                if (!IS_LOCAL(user))
                        return 0;
 
                if (target_type == TYPE_USER)
                {
-                       return MatchPattern((userrec*)dest, user, silence_type);
+                       return MatchPattern((User*)dest, user, silence_type);
                }
                else if (target_type == TYPE_CHANNEL)
                {
-                       chanrec* chan = (chanrec*)dest;
+                       Channel* chan = (Channel*)dest;
                        if (chan)
                        {
-                               this->OnBuildExemptList((silence_type == SILENCE_PRIVATE ? MSG_PRIVMSG : MSG_NOTICE), chan, user, status, exempt_list);
+                               this->OnBuildExemptList((silence_type == SILENCE_PRIVATE ? MSG_PRIVMSG : MSG_NOTICE), chan, user, status, exempt_list, "");
                        }
                }
                return 0;
        }
 
-       virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list)
+       virtual int OnUserPreMessage(User* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list)
        {
                return PreText(user, dest, target_type, text, status, exempt_list, SILENCE_PRIVATE);
        }
 
-       virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list)
+       virtual int OnUserPreNotice(User* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list)
        {
                return PreText(user, dest, target_type, text, status, exempt_list, SILENCE_NOTICE);
        }
 
-       virtual int OnUserPreInvite(userrec* source,userrec* dest,chanrec* channel)
+       virtual int OnUserPreInvite(User* source,User* dest,Channel* channel)
        {
                return MatchPattern(dest, source, SILENCE_INVITE);
        }
 
-       int MatchPattern(userrec* dest, userrec* source, int pattern)
+       int MatchPattern(User* dest, User* source, int pattern)
        {
                silencelist* sl;
                dest->GetExt("silence_list", sl);
@@ -369,32 +362,8 @@ class ModuleSilence : public Module
        
        virtual Version GetVersion()
        {
-               return Version(1,1,0,1,VF_VENDOR,API_VERSION);
+               return Version(1, 1, 0, 1, VF_COMMON | VF_VENDOR, API_VERSION);
        }
 };
 
-
-class ModuleSilenceFactory : public ModuleFactory
-{
- public:
-       ModuleSilenceFactory()
-       {
-       }
-       
-       ~ModuleSilenceFactory()
-       {
-       }
-       
-       virtual Module * CreateModule(InspIRCd* Me)
-       {
-               return new ModuleSilence(Me);
-       }
-       
-};
-
-
-extern "C" void * init_module( void )
-{
-       return new ModuleSilenceFactory;
-}
-
+MODULE_INIT(ModuleSilence)