X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_helpop.cpp;h=5a0a675074f7e32bbe9da3e63c66d85a635e1e51;hb=fcafba14c5408360ec725ed1649ede75b7ae52c1;hp=661860b0a31ae1ea01acf5de850503b195951b6f;hpb=43847ec9c7e1a195163eb4c529f1c92fd1ace0a4;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp index 661860b0a..5a0a67507 100644 --- a/src/modules/m_helpop.cpp +++ b/src/modules/m_helpop.cpp @@ -3,7 +3,7 @@ * +------------------------------------+ * * InspIRCd: (C) 2002-2009 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see * the file COPYING for details. @@ -19,10 +19,32 @@ static std::map helpop_map; /** Handles user mode +h */ -class Helpop : public SimpleUserModeHandler +class Helpop : public ModeHandler { public: - Helpop(InspIRCd* Instance) : SimpleUserModeHandler(Instance, 'h') { } + Helpop(InspIRCd* Instance) : ModeHandler(Instance, 'h', 0, 0, false, MODETYPE_USER, true) { } + + ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding, bool) + { + if (adding) + { + if (!dest->IsModeSet('h')) + { + dest->SetMode('h',true); + return MODEACTION_ALLOW; + } + } + else + { + if (dest->IsModeSet('h')) + { + dest->SetMode('h',false); + return MODEACTION_ALLOW; + } + } + + return MODEACTION_DENY; + } }; /** Handles /HELPOP