X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_autoop.cpp;h=f7936f3576e0c448707f2ff87dfc0a4e1652bfa7;hb=8ef5c350f08aed38b2d64f8770298baf74f03afe;hp=83c40533800ecb6d9a380843ded9d27a0a06999d;hpb=87b1461e2a4710a38b32186c2582da9fe9bb3804;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_autoop.cpp b/src/modules/m_autoop.cpp index 83c405338..f7936f357 100644 --- a/src/modules/m_autoop.cpp +++ b/src/modules/m_autoop.cpp @@ -1,7 +1,10 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2011 Jackmcbarn + * Copyright (C) 2013, 2017-2020 Sadie Powell + * Copyright (C) 2012-2015 Attila Molnar + * Copyright (C) 2012, 2019 Robby + * Copyright (C) 2011 jackmcbarn * Copyright (C) 2010 Daniel De Graaf * * This file is part of InspIRCd. InspIRCd is free software: you can @@ -21,15 +24,21 @@ #include "inspircd.h" #include "listmode.h" -/** Handles +w channel mode - */ +enum +{ + // InspIRCd-specific. + RPL_ACCESSLIST = 910, + RPL_ENDOFACCESSLIST = 911 +}; + class AutoOpList : public ListModeBase { public: AutoOpList(Module* Creator) - : ListModeBase(Creator, "autoop", 'w', "End of Channel Access List", 910, 911, true) + : ListModeBase(Creator, "autoop", 'w', "End of Channel Access List", RPL_ACCESSLIST, RPL_ENDOFACCESSLIST, true) { ranktoset = ranktounset = OP_VALUE; + syntax = ":"; tidy = false; } @@ -62,9 +71,10 @@ class AutoOpList : public ListModeBase std::string dummy; if (mh->AccessCheck(source, channel, dummy, true) == MOD_RES_DENY) return MOD_RES_DENY; - if (mh->GetLevelRequired(true) > mylevel) + if (mh->GetLevelRequired(adding) > mylevel) { - source->WriteNumeric(ERR_CHANOPRIVSNEEDED, channel->name, InspIRCd::Format("You must be able to set mode '%s' to include it in an autoop", mid.c_str())); + source->WriteNumeric(ERR_CHANOPRIVSNEEDED, channel->name, InspIRCd::Format("You must be able to %s mode %c (%s) to %s an autoop containing it", + adding ? "set" : "unset", mh->GetModeChar(), mh->name.c_str(), adding ? "add" : "remove")); return MOD_RES_DENY; } return MOD_RES_PASSTHRU; @@ -112,7 +122,7 @@ class ModuleAutoOp : public Module Version GetVersion() CXX11_OVERRIDE { - return Version("Provides channel mode +w, basic channel access controls", VF_VENDOR); + return Version("Adds channel mode w (autoop) which allows channel operators to define an access list which gives status ranks to users on join.", VF_VENDOR); } };