X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_restrictbanned.cpp;h=a5a5ab1aee4cab2408d027f0713102d06c3de225;hb=192ae99685903cfb71bbf70edc450c4a6314621e;hp=6f0e991e5a1a6394f9f97cfcd9a62f3c1e3ed46c;hpb=9cf56d917d92959701694477f7944d45ad2c38ed;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_restrictbanned.cpp b/src/modules/m_restrictbanned.cpp index 6f0e991e5..a5a5ab1ae 100644 --- a/src/modules/m_restrictbanned.cpp +++ b/src/modules/m_restrictbanned.cpp @@ -11,10 +11,6 @@ * --------------------------------------------------- */ -#include "users.h" -#include "channels.h" -#include "modules.h" - #include "inspircd.h" /* $ModDesc: Restricts banned users in a channel. May not speak, etc. */ @@ -41,7 +37,7 @@ class ModuleRestrictBanned : public Module List[I_OnLocalTopicChange] = List[I_OnUserPreNick] = List[I_OnUserPreNotice] = List[I_OnUserPreMessage] = 1; } - int CheckRestricted(userrec *user, chanrec *channel, const std::string &action) + int CheckRestricted(User *user, Channel *channel, const std::string &action) { /* aren't local? we don't care. */ if (!IS_LOCAL(user)) @@ -57,12 +53,16 @@ class ModuleRestrictBanned : public Module return 0; } - virtual int OnUserPreNick(userrec *user, const std::string &newnick) + virtual int OnUserPreNick(User *user, const std::string &newnick) { /* if they aren't local, we don't care */ if (!IS_LOCAL(user)) return 0; + /* Allow changes to UID */ + if (isdigit(newnick[0])) + return 0; + /* bit of a special case. */ for (UCListIter i = user->chans.begin(); i != user->chans.end(); i++) { @@ -73,21 +73,21 @@ class ModuleRestrictBanned : public Module return 0; } - virtual int OnLocalTopicChange(userrec *user, chanrec *channel, const std::string &topic) + virtual int OnLocalTopicChange(User *user, Channel *channel, const std::string &topic) { return CheckRestricted(user, channel, "change the topic"); } - 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 OnUserPreNotice(user,dest,target_type,text,status,exempt_list); } - 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) { if (target_type == TYPE_CHANNEL) { - chanrec *channel = (chanrec *)dest; + Channel *channel = (Channel *)dest; return CheckRestricted(user, channel, "message the channel"); } @@ -96,28 +96,4 @@ class ModuleRestrictBanned : public Module } }; - -class ModuleRestrictBannedFactory : public ModuleFactory -{ - public: - ModuleRestrictBannedFactory() - { - } - - ~ModuleRestrictBannedFactory() - { - } - - virtual Module * CreateModule(InspIRCd* Me) - { - return new ModuleRestrictBanned(Me); - } - -}; - - -extern "C" DllExport void * init_module( void ) -{ - return new ModuleRestrictBannedFactory; -} - +MODULE_INIT(ModuleRestrictBanned)