diff options
author | Peter Powell <petpow@saberuk.com> | 2017-10-18 03:40:31 +0100 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2017-11-06 10:55:56 +0000 |
commit | 257bf752fc6b87fa35bfa8cf95fc37730c3d55c6 (patch) | |
tree | 1e12e5a40587abc20ce5cc718f189fd753f4a9a7 /src/mode.cpp | |
parent | 2bce37fc7dc10ad719cddd5094845e57c93ff095 (diff) |
Add support for setting the unset rank in ModeHandler.
Diffstat (limited to 'src/mode.cpp')
-rw-r--r-- | src/mode.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/mode.cpp b/src/mode.cpp index fd5e30707..cff625c46 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -27,9 +27,16 @@ #include "builtinmodes.h" ModeHandler::ModeHandler(Module* Creator, const std::string& Name, char modeletter, ParamSpec Params, ModeType type, Class mclass) - : ServiceProvider(Creator, Name, SERVICE_MODE), modeid(ModeParser::MODEID_MAX), - parameters_taken(Params), mode(modeletter), oper(false), - list(false), m_type(type), type_id(mclass), levelrequired(HALFOP_VALUE) + : ServiceProvider(Creator, Name, SERVICE_MODE) + , modeid(ModeParser::MODEID_MAX) + , parameters_taken(Params) + , mode(modeletter) + , oper(false) + , list(false) + , m_type(type) + , type_id(mclass) + , ranktoset(HALFOP_VALUE) + , ranktounset(HALFOP_VALUE) { } @@ -237,7 +244,7 @@ ModeAction ModeParser::TryMode(User* user, User* targetuser, Channel* chan, Mode return MODEACTION_DENY; if (MOD_RESULT == MOD_RES_PASSTHRU) { - unsigned int neededrank = mh->GetLevelRequired(); + unsigned int neededrank = mh->GetLevelRequired(adding); /* Compare our rank on the channel against the rank of the required prefix, * allow if >= ours. Because mIRC and xchat throw a tizz if the modes shown * in NAMES(X) are not in rank order, we know the most powerful mode is listed |