X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_services.cpp;h=fc07708c2b80d53a1b357ee77ca6692fd110819a;hb=b7e299c2e10d915d5e59df4cb3f54951c8daa999;hp=207079da05e24caa4d5abeddcaead62fa5d10a09;hpb=76bf72f8c2c5b1524bf20a523fe1cf0d79d29742;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_services.cpp b/src/modules/m_services.cpp index 207079da0..fc07708c2 100644 --- a/src/modules/m_services.cpp +++ b/src/modules/m_services.cpp @@ -11,10 +11,10 @@ * --------------------------------------------------- */ +#include "inspircd.h" #include "users.h" #include "channels.h" #include "modules.h" -#include "inspircd.h" static bool kludgeme = false; @@ -173,7 +173,7 @@ class ModuleServices : public Module User_R* m5; public: ModuleServices(InspIRCd* Me) - : Module::Module(Me) + : Module(Me) { m1 = new Channel_r(ServerInstance); @@ -209,7 +209,7 @@ class ModuleServices : public Module virtual void OnUserPostNick(userrec* user, const std::string &oldnick) { /* On nickchange, if they have +r, remove it */ - if (user->IsModeSet('r')) + if (user->IsModeSet('r') && irc::string(user->nick) != oldnick) { const char* modechange[2]; modechange[0] = user->nick; @@ -222,12 +222,15 @@ class ModuleServices : public Module virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { + if (!IS_LOCAL(user)) + return 0; + if (target_type == TYPE_CHANNEL) { chanrec* c = (chanrec*)dest; if ((c->IsModeSet('M')) && (!user->IsModeSet('r'))) { - if ((ServerInstance->ULine(user->nick)) || (ServerInstance->ULine(user->server)) || (!strcmp(user->server,""))) + if ((ServerInstance->ULine(user->nick)) || (ServerInstance->ULine(user->server))) { // user is ulined, can speak regardless return 0; @@ -304,27 +307,4 @@ class ModuleServices : public Module }; -class ModuleServicesFactory : public ModuleFactory -{ - public: - ModuleServicesFactory() - { - } - - ~ModuleServicesFactory() - { - } - - virtual Module * CreateModule(InspIRCd* Me) - { - return new ModuleServices(Me); - } - -}; - - -extern "C" void * init_module( void ) -{ - return new ModuleServicesFactory; -} - +MODULE_INIT(ModuleServices)