diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-05-01 16:12:45 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-05-01 16:12:45 +0000 |
commit | f3abcf2bcfe36d3389b74caa9eef8582901fbe15 (patch) | |
tree | 2ebd9c1c6615939d850cf95866e9e982cb2b18d1 /src/modules/m_services.cpp | |
parent | 61416a1885d1490550175b6a73b724ba0843d729 (diff) |
Simple user/channel mode patch
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9596 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_services.cpp')
-rw-r--r-- | src/modules/m_services.cpp | 78 |
1 files changed, 6 insertions, 72 deletions
diff --git a/src/modules/m_services.cpp b/src/modules/m_services.cpp index 5b39de931..669a87aeb 100644 --- a/src/modules/m_services.cpp +++ b/src/modules/m_services.cpp @@ -70,92 +70,26 @@ class User_r : public ModeHandler /** Channel mode +R - registered users only */ -class Channel_R : public ModeHandler +class Channel_R : public SimpleChannelModeHandler { public: - Channel_R(InspIRCd* Instance) : ModeHandler(Instance, 'R', 0, 0, false, MODETYPE_CHANNEL, false) { } - - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding, bool) - { - if (adding) - { - if (!channel->IsModeSet('R')) - { - channel->SetMode('R',true); - return MODEACTION_ALLOW; - } - } - else - { - if (channel->IsModeSet('R')) - { - channel->SetMode('R',false); - return MODEACTION_ALLOW; - } - } - - return MODEACTION_DENY; - } + Channel_R(InspIRCd* Instance) : SimpleChannelModeHandler(Instance, 'R') { } }; /** User mode +R - only allow PRIVMSG and NOTICE from registered users */ -class User_R : public ModeHandler +class User_R : public SimpleUserModeHandler { public: - User_R(InspIRCd* Instance) : ModeHandler(Instance, 'R', 0, 0, false, MODETYPE_USER, false) { } - - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding, bool) - { - if (adding) - { - if (!dest->IsModeSet('R')) - { - dest->SetMode('R',true); - return MODEACTION_ALLOW; - } - } - else - { - if (dest->IsModeSet('R')) - { - dest->SetMode('R',false); - return MODEACTION_ALLOW; - } - } - - return MODEACTION_DENY; - } + User_R(InspIRCd* Instance) : SimpleUserModeHandler(Instance, 'R') { } }; /** Channel mode +M - only allow privmsg and notice to channel from registered users */ -class Channel_M : public ModeHandler +class Channel_M : public SimpleChannelModeHandler { public: - Channel_M(InspIRCd* Instance) : ModeHandler(Instance, 'M', 0, 0, false, MODETYPE_CHANNEL, false) { } - - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding, bool) - { - if (adding) - { - if (!channel->IsModeSet('M')) - { - channel->SetMode('M',true); - return MODEACTION_ALLOW; - } - } - else - { - if (channel->IsModeSet('M')) - { - channel->SetMode('M',false); - return MODEACTION_ALLOW; - } - } - - return MODEACTION_DENY; - } + Channel_M(InspIRCd* Instance) : SimpleChannelModeHandler(Instance, 'M') { } }; /** Dreamnforge-like services support |