summaryrefslogtreecommitdiff
path: root/src/mode.cpp
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2017-10-18 03:40:31 +0100
committerPeter Powell <petpow@saberuk.com>2017-11-06 10:55:56 +0000
commit257bf752fc6b87fa35bfa8cf95fc37730c3d55c6 (patch)
tree1e12e5a40587abc20ce5cc718f189fd753f4a9a7 /src/mode.cpp
parent2bce37fc7dc10ad719cddd5094845e57c93ff095 (diff)
Add support for setting the unset rank in ModeHandler.
Diffstat (limited to 'src/mode.cpp')
-rw-r--r--src/mode.cpp15
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