diff options
Diffstat (limited to 'src/modules/m_deaf.cpp')
-rw-r--r-- | src/modules/m_deaf.cpp | 53 |
1 files changed, 26 insertions, 27 deletions
diff --git a/src/modules/m_deaf.cpp b/src/modules/m_deaf.cpp index 19fb0bd65..67c2b7210 100644 --- a/src/modules/m_deaf.cpp +++ b/src/modules/m_deaf.cpp @@ -15,14 +15,14 @@ */ using namespace std; -
+ #include "users.h" #include "channels.h" #include "modules.h" #include "inspircd.h" -
+ /* $ModDesc: Provides support for ircu style usermode +d (deaf to channel messages and channel notices) */ -
+ /** User mode +d - filter out channel messages and channel notices */ class User_d : public ModeHandler @@ -51,38 +51,38 @@ class User_d : public ModeHandler return MODEACTION_DENY; } }; -
+ class ModuleDeaf : public Module -{
- User_d* m1;
+{ + User_d* m1; public: ModuleDeaf(InspIRCd* Me) : Module::Module(Me) - {
- m1 = new User_d(ServerInstance);
+ { + m1 = new User_d(ServerInstance); ServerInstance->AddMode(m1, 'd'); } -
+ void Implements(char* List) { List[I_OnUserPreMessage] = List[I_OnUserPreNotice] = 1; } -
+ virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) { return PreText(user, dest, target_type, text, status, exempt_list); } -
+ virtual int OnUserPreMessage(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) - {
+ { return PreText(user, dest, target_type, text, status, exempt_list); - }
-
+ } + virtual int PreText(userrec* user,void* dest,int target_type, std::string &text, char status, CUList &exempt_list) - {
- if (target_type == TYPE_CHANNEL)
+ { + if (target_type == TYPE_CHANNEL) { - chanrec* chan = (chanrec*)dest;
+ chanrec* chan = (chanrec*)dest; if (chan) { CUList *ulist; @@ -111,27 +111,26 @@ class ModuleDeaf : public Module exempt_list[i->second] = i->second; } } - }
- }
- }
+ } + } + } return 0; } -
-
+ virtual ~ModuleDeaf() - {
+ { ServerInstance->Modes->DelMode(m1); DELETE(m1); } -
+ virtual Version GetVersion() { return Version(1,1,0,0,VF_COMMON|VF_VENDOR,API_VERSION); } -
+ }; -
-
+ + class ModuleDeafFactory : public ModuleFactory { public: |