X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_services.cpp;h=669a87aeb3c71a2476387b5ba664e61884f90c69;hb=f3abcf2bcfe36d3389b74caa9eef8582901fbe15;hp=d3781cef375a3e22545b05e2b94422935f2814e8;hpb=68730d4c9701b34c962302e6410908865fb2ba28;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_services.cpp b/src/modules/m_services.cpp index d3781cef3..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 @@ -258,7 +192,7 @@ class ModuleServices : public Module return OnUserPreMessage(user,dest,target_type,text,status, exempt_list); } - virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs) + virtual int OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven) { if (chan) { @@ -297,7 +231,7 @@ class ModuleServices : public Module virtual Version GetVersion() { - return Version(1,1,0,0,VF_COMMON|VF_VENDOR,API_VERSION); + return Version(1,2,0,0,VF_COMMON|VF_VENDOR,API_VERSION); } };