summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/channels.h3
-rw-r--r--include/mode.h52
-rw-r--r--include/u_listmode.h3
-rw-r--r--src/channels.cpp4
-rw-r--r--src/mode.cpp96
-rw-r--r--src/modes/cmode_b.cpp3
-rw-r--r--src/modes/cmode_h.cpp6
-rw-r--r--src/modes/cmode_k.cpp2
-rw-r--r--src/modes/cmode_l.cpp2
-rw-r--r--src/modes/cmode_o.cpp6
-rw-r--r--src/modes/cmode_t.cpp2
-rw-r--r--src/modes/cmode_v.cpp6
-rw-r--r--src/modes/umode_i.cpp2
-rw-r--r--src/modes/umode_o.cpp3
-rw-r--r--src/modes/umode_s.cpp3
-rw-r--r--src/modes/umode_w.cpp2
-rw-r--r--src/modules/m_auditorium.cpp5
-rw-r--r--src/modules/m_botmode.cpp2
-rw-r--r--src/modules/m_callerid.cpp2
-rw-r--r--src/modules/m_censor.cpp2
-rw-r--r--src/modules/m_chanprotect.cpp20
-rw-r--r--src/modules/m_cloaking.cpp2
-rw-r--r--src/modules/m_commonchans.cpp2
-rw-r--r--src/modules/m_deaf.cpp2
-rw-r--r--src/modules/m_delayjoin.cpp5
-rw-r--r--src/modules/m_delaymsg.cpp6
-rw-r--r--src/modules/m_helpop.cpp5
-rw-r--r--src/modules/m_hidechans.cpp2
-rw-r--r--src/modules/m_hideoper.cpp5
-rw-r--r--src/modules/m_invisible.cpp5
-rw-r--r--src/modules/m_joinflood.cpp2
-rw-r--r--src/modules/m_kicknorejoin.cpp2
-rw-r--r--src/modules/m_messageflood.cpp2
-rw-r--r--src/modules/m_nickflood.cpp2
-rw-r--r--src/modules/m_noctcp.cpp2
-rw-r--r--src/modules/m_nonicks.cpp2
-rw-r--r--src/modules/m_ojoin.cpp9
-rw-r--r--src/modules/m_operchans.cpp2
-rw-r--r--src/modules/m_operprefix.cpp8
-rw-r--r--src/modules/m_permchannels.cpp2
-rw-r--r--src/modules/m_redirect.cpp2
-rw-r--r--src/modules/m_services_account.cpp6
-rw-r--r--src/modules/m_servprotect.cpp4
-rw-r--r--src/modules/m_showwhois.cpp5
-rw-r--r--src/modules/m_sslmodes.cpp2
-rw-r--r--src/modules/m_stripcolor.cpp2
46 files changed, 166 insertions, 148 deletions
diff --git a/include/channels.h b/include/channels.h
index f71ad53a3..7b6999316 100644
--- a/include/channels.h
+++ b/include/channels.h
@@ -406,10 +406,9 @@ class CoreExport Channel : public Extensible
* the channel (to grant ops to them)
* @param user The user to associate the privilage with
* @param prefix The prefix character to associate
- * @param prefix_rank The rank (value) of this prefix character
* @param adding True if adding the prefix, false when removing
*/
- void SetPrefix(User* user, char prefix, unsigned int prefix_rank, bool adding);
+ void SetPrefix(User* user, char prefix, bool adding);
/** Check if a user is banned on this channel
* @param user A user to check against the banlist
diff --git a/include/mode.h b/include/mode.h
index 7f3ef34a7..0c367a1c2 100644
--- a/include/mode.h
+++ b/include/mode.h
@@ -70,6 +70,16 @@ enum PrefixModeValue
OP_VALUE = 30000
};
+enum ParamSpec
+{
+ /** No parameters */
+ PARAM_NONE,
+ /** Parameter required on mode setting only */
+ PARAM_SETONLY,
+ /** Parameter always required */
+ PARAM_ALWAYS
+};
+
/**
* Used by ModeHandler::ModeSet() to return the state of a mode upon a channel or user.
* The pair contains an activity flag, true if the mode is set with the given parameter,
@@ -95,21 +105,13 @@ class CoreExport ModeHandler : public classbase
{
protected:
/**
- * Creator/owner pointer
- */
- InspIRCd* ServerInstance;
- /**
* The mode letter you're implementing.
*/
char mode;
- /**
- * Number of parameters when being set
- */
- int n_params_on;
- /**
- * Number of parameters when being unset
+
+ /** What kind of parameters does the mode take?
*/
- int n_params_off;
+ ParamSpec parameters_taken;
/**
* Mode is a 'list' mode. The behaviour
* of your mode is now set entirely within
@@ -147,9 +149,10 @@ class CoreExport ModeHandler : public classbase
/** The prefix char needed on channel to use this mode,
* only checked for channel modes
*/
- char prefixneeded;
+ int levelrequired;
public:
+ static InspIRCd* ServerInstance;
/** Module that created this mode. NULL for core modes */
Module* creator;
@@ -169,11 +172,8 @@ class CoreExport ModeHandler : public classbase
* and the rank values OP_VALUE, HALFOP_VALUE and VOICE_VALUE respectively. Any prefixes you define should have unique values proportional
* to these three defaults or proportional to another mode in a module you depend on. See src/cmode_o.cpp as an example.
* @param prefixrequired The prefix required to change this mode
- * @param translate The translation type for the argument(s) of this mode
*/
- ModeHandler(InspIRCd* Instance, Module* me, char modeletter, int parameters_on, int parameters_off,
- bool listmode, ModeType type, bool operonly, char mprefix = 0,
- char prefixrequired = '%', TranslateType translate = TR_TEXT);
+ ModeHandler(Module* me, char modeletter, ParamSpec params, ModeType type);
/**
* The default destructor does nothing
*/
@@ -187,7 +187,7 @@ class CoreExport ModeHandler : public classbase
* also implement GetPrefixRank() to return an integer
* value for this mode prefix.
*/
- char GetPrefix();
+ inline char GetPrefix() const { return prefix; }
/** Get number of items with this mode set on them
*/
virtual unsigned int GetCount();
@@ -205,15 +205,15 @@ class CoreExport ModeHandler : public classbase
/**
* Returns the mode's type
*/
- ModeType GetModeType();
+ inline ModeType GetModeType() const { return m_type; }
/**
* Returns the mode's parameter translation type
*/
- TranslateType GetTranslateType();
+ inline TranslateType GetTranslateType() const { return m_paramtype; }
/**
* Returns true if the mode can only be set/unset by an oper
*/
- bool NeedsOper();
+ inline bool NeedsOper() const { return oper; }
/**
* Returns the number of parameters for the mode. Any non-zero
* value should be considered to be equivalent to one.
@@ -313,10 +313,8 @@ class CoreExport ModeHandler : public classbase
* @param channel The channel which the server wants to remove your mode from
*/
virtual void RemoveMode(Channel* channel, irc::modestacker* stack = NULL);
-
- char GetNeededPrefix();
-
- void SetNeededPrefix(char needsprefix);
+
+ inline unsigned int GetLevelRequired() const { return levelrequired; }
};
/** A prebuilt mode handler which handles a simple user mode, e.g. no parameters, usable by any user, with no extra
@@ -327,8 +325,8 @@ class CoreExport ModeHandler : public classbase
class CoreExport SimpleUserModeHandler : public ModeHandler
{
public:
- SimpleUserModeHandler(InspIRCd* Instance, Module* Creator, char modeletter)
- : ModeHandler(Instance, Creator, modeletter, 0, 0, false, MODETYPE_USER, false) {}
+ SimpleUserModeHandler(Module* Creator, char modeletter)
+ : ModeHandler(Creator, modeletter, PARAM_NONE, MODETYPE_USER) {}
virtual ~SimpleUserModeHandler() {}
virtual ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
};
@@ -342,7 +340,7 @@ class CoreExport SimpleChannelModeHandler : public ModeHandler
{
public:
SimpleChannelModeHandler(InspIRCd* Instance, Module* Creator, char modeletter)
- : ModeHandler(Instance, Creator, modeletter, 0, 0, false, MODETYPE_CHANNEL, false) {}
+ : ModeHandler(Creator, modeletter, PARAM_NONE, MODETYPE_CHANNEL) {}
virtual ~SimpleChannelModeHandler() {}
virtual ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
};
diff --git a/include/u_listmode.h b/include/u_listmode.h
index 9d9b5f836..4b8ffe9e0 100644
--- a/include/u_listmode.h
+++ b/include/u_listmode.h
@@ -142,10 +142,11 @@ class ListModeBase : public ModeHandler
* @param ctag Configuration tag to get limits from
*/
ListModeBase(InspIRCd* Instance, Module* Creator, char modechar, const std::string &eolstr, unsigned int lnum, unsigned int eolnum, bool autotidy, const std::string &ctag = "banlist")
- : ModeHandler(Instance, Creator, modechar, 1, 1, true, MODETYPE_CHANNEL, false),
+ : ModeHandler(Creator, modechar, PARAM_ALWAYS, MODETYPE_CHANNEL),
listnumeric(lnum), endoflistnumeric(eolnum), endofliststring(eolstr), tidy(autotidy),
configtag(ctag), extItem("listbase_mode_" + std::string(1, mode) + "_list", Creator)
{
+ list = true;
this->DoRehash();
Extensible::Register(&extItem);
}
diff --git a/src/channels.cpp b/src/channels.cpp
index adb0e6ebe..9489e57ba 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -351,7 +351,7 @@ Channel* Channel::ForceChan(InspIRCd* Instance, Channel* Ptr, User* user, const
if (mh)
{
/* Set, and make sure that the mode handler knows this mode was now set */
- Ptr->SetPrefix(user, mh->GetModeChar(), mh->GetPrefixRank(), true);
+ Ptr->SetPrefix(user, mh->GetModeChar(), true);
mh->OnModeChange(Instance->FakeClient, Instance->FakeClient, Ptr, nick, true);
}
}
@@ -976,7 +976,7 @@ unsigned int Channel::GetPrefixValue(User* user)
return bestrank;
}
-void Channel::SetPrefix(User* user, char prefix, unsigned int prefix_value, bool adding)
+void Channel::SetPrefix(User* user, char prefix, bool adding)
{
ModeHandler* delta_mh = ServerInstance->Modes->FindMode(prefix, MODETYPE_CHANNEL);
if (!delta_mh)
diff --git a/src/mode.cpp b/src/mode.cpp
index 18384aaef..86438bf73 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -49,8 +49,11 @@
/* +s (server notice masks) */
#include "modes/umode_s.h"
-ModeHandler::ModeHandler(InspIRCd* Instance, Module* Creator, char modeletter, int parameters_on, int parameters_off, bool listmode, ModeType type, bool operonly, char mprefix, char prefixrequired, TranslateType translate)
- : ServerInstance(Instance), mode(modeletter), n_params_on(parameters_on), n_params_off(parameters_off), list(listmode), m_type(type), m_paramtype(translate), oper(operonly), prefix(mprefix), count(0), prefixneeded(prefixrequired), creator(Creator)
+InspIRCd* ModeHandler::ServerInstance;
+
+ModeHandler::ModeHandler(Module* Creator, char modeletter, ParamSpec Params, ModeType type)
+ : mode(modeletter), parameters_taken(Params), list(false), m_type(type), m_paramtype(TR_TEXT),
+ oper(false), prefix(0), count(0), levelrequired(HALFOP_VALUE), creator(Creator)
{
}
@@ -63,18 +66,6 @@ bool ModeHandler::IsListMode()
return list;
}
-char ModeHandler::GetNeededPrefix()
-{
- if (prefixneeded == '%' && !ServerInstance->Config->AllowHalfop)
- return '@';
- return prefixneeded;
-}
-
-void ModeHandler::SetNeededPrefix(char needsprefix)
-{
- prefixneeded = needsprefix;
-}
-
unsigned int ModeHandler::GetPrefixRank()
{
return 0;
@@ -91,29 +82,18 @@ void ModeHandler::ChangeCount(int modifier)
ServerInstance->Logs->Log("MODE", DEBUG,"Change count for mode %c is now %d", mode, count);
}
-ModeType ModeHandler::GetModeType()
-{
- return m_type;
-}
-
-TranslateType ModeHandler::GetTranslateType()
-{
- return m_paramtype;
-}
-
-bool ModeHandler::NeedsOper()
-{
- return oper;
-}
-
-char ModeHandler::GetPrefix()
-{
- return prefix;
-}
-
int ModeHandler::GetNumParams(bool adding)
{
- return adding ? n_params_on : n_params_off;
+ switch (parameters_taken)
+ {
+ case PARAM_ALWAYS:
+ return 1;
+ case PARAM_SETONLY:
+ return adding ? 1 : 0;
+ case PARAM_NONE:
+ break;
+ }
+ return 0;
}
char ModeHandler::GetModeChar()
@@ -292,36 +272,21 @@ ModeAction ModeParser::TryMode(User* user, User* targetuser, Channel* chan, bool
if (chan && !SkipACL && (MOD_RESULT != MOD_RES_ALLOW))
{
- char needed = mh->GetNeededPrefix();
- ModeHandler* prefixmode = FindPrefix(needed);
-
- /* If the mode defined by the handler is not '\0', but the handler for it
- * cannot be found, they probably dont have the right module loaded to implement
- * the prefix they want to compare the mode against, e.g. '&' for m_chanprotect.
- * Revert to checking against the minimum core prefix, '%'.
+ unsigned int neededrank = mh->GetLevelRequired();
+ /* 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
+ * first, so we don't need to iterate, we just look up the first instead.
*/
- if (needed && !prefixmode)
- {
- needed = ServerInstance->Config->AllowHalfop ? '%' : '@';
- prefixmode = FindPrefix(needed);
- }
-
- if (needed)
- {
- unsigned int neededrank = prefixmode->GetPrefixRank();
- /* 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
- * first, so we don't need to iterate, we just look up the first instead.
- */
- unsigned int ourrank = chan->GetPrefixValue(user);
- if (ourrank < neededrank)
- {
- /* Bog off */
- user->WriteNumeric(ERR_CHANOPRIVSNEEDED, "%s %s :You must have channel privilege %c or above to %sset channel mode %c",
- user->nick.c_str(), chan->name.c_str(), needed, adding ? "" : "un", modechar);
- return MODEACTION_DENY;
- }
+ unsigned int ourrank = chan->GetPrefixValue(user);
+ if (ourrank < neededrank)
+ {
+ /* Bog off */
+ // TODO replace with a real search for the proper prefix
+ char needed = neededrank > HALFOP_VALUE ? '@' : '%';
+ user->WriteNumeric(ERR_CHANOPRIVSNEEDED, "%s %s :You must have channel privilege %c or above to %sset channel mode %c",
+ user->nick.c_str(), chan->name.c_str(), needed, adding ? "" : "un", modechar);
+ return MODEACTION_DENY;
}
}
@@ -378,7 +343,7 @@ ModeAction ModeParser::TryMode(User* user, User* targetuser, Channel* chan, bool
{
User* user_to_prefix = ServerInstance->FindNick(parameter);
if (user_to_prefix)
- chan->SetPrefix(user_to_prefix, modechar, mh->GetPrefixRank(), adding);
+ chan->SetPrefix(user_to_prefix, modechar, adding);
}
for (ModeWatchIter watchers = modewatchers[handler_id].begin(); watchers != modewatchers[handler_id].end(); watchers++)
@@ -978,6 +943,7 @@ void ModeHandler::RemoveMode(Channel* channel, irc::modestacker* stack)
ModeParser::ModeParser(InspIRCd* Instance) : ServerInstance(Instance)
{
+ ModeHandler::ServerInstance = Instance;
ModeHandler* modes[] =
{
new ModeChannelSecret(Instance),
diff --git a/src/modes/cmode_b.cpp b/src/modes/cmode_b.cpp
index 9c9c2129c..d9ecb5b07 100644
--- a/src/modes/cmode_b.cpp
+++ b/src/modes/cmode_b.cpp
@@ -25,8 +25,9 @@
#include "hashcomp.h"
#include "modes/cmode_b.h"
-ModeChannelBan::ModeChannelBan(InspIRCd* Instance) : ModeHandler(Instance, NULL, 'b', 1, 1, true, MODETYPE_CHANNEL, false)
+ModeChannelBan::ModeChannelBan(InspIRCd* Instance) : ModeHandler(NULL, 'b', PARAM_ALWAYS, MODETYPE_CHANNEL)
{
+ list = true;
}
ModeAction ModeChannelBan::OnModeChange(User* source, User*, Channel* channel, std::string &parameter, bool adding)
diff --git a/src/modes/cmode_h.cpp b/src/modes/cmode_h.cpp
index a61df4ba0..927c7ea73 100644
--- a/src/modes/cmode_h.cpp
+++ b/src/modes/cmode_h.cpp
@@ -19,8 +19,12 @@
#include "modules.h"
#include "modes/cmode_h.h"
-ModeChannelHalfOp::ModeChannelHalfOp(InspIRCd* Instance) : ModeHandler(Instance, NULL, 'h', 1, 1, true, MODETYPE_CHANNEL, false, '%', '@', TR_NICK)
+ModeChannelHalfOp::ModeChannelHalfOp(InspIRCd* Instance) : ModeHandler(NULL, 'h', PARAM_ALWAYS, MODETYPE_CHANNEL)
{
+ list = true;
+ prefix = '%';
+ levelrequired = OP_VALUE;
+ m_paramtype = TR_NICK;
}
unsigned int ModeChannelHalfOp::GetPrefixRank()
diff --git a/src/modes/cmode_k.cpp b/src/modes/cmode_k.cpp
index c785f6705..ea035e7b8 100644
--- a/src/modes/cmode_k.cpp
+++ b/src/modes/cmode_k.cpp
@@ -17,7 +17,7 @@
#include "users.h"
#include "modes/cmode_k.h"
-ModeChannelKey::ModeChannelKey(InspIRCd* Instance) : ModeHandler(Instance, NULL, 'k', 1, 1, false, MODETYPE_CHANNEL, false)
+ModeChannelKey::ModeChannelKey(InspIRCd* Instance) : ModeHandler(NULL, 'k', PARAM_ALWAYS, MODETYPE_CHANNEL)
{
}
diff --git a/src/modes/cmode_l.cpp b/src/modes/cmode_l.cpp
index a2ba07f10..1aea53a61 100644
--- a/src/modes/cmode_l.cpp
+++ b/src/modes/cmode_l.cpp
@@ -17,7 +17,7 @@
#include "users.h"
#include "modes/cmode_l.h"
-ModeChannelLimit::ModeChannelLimit(InspIRCd* Instance) : ModeHandler(Instance, NULL, 'l', 1, 0, false, MODETYPE_CHANNEL, false)
+ModeChannelLimit::ModeChannelLimit(InspIRCd* Instance) : ModeHandler(NULL, 'l', PARAM_SETONLY, MODETYPE_CHANNEL)
{
}
diff --git a/src/modes/cmode_o.cpp b/src/modes/cmode_o.cpp
index 19c365ad9..8af364ad4 100644
--- a/src/modes/cmode_o.cpp
+++ b/src/modes/cmode_o.cpp
@@ -19,8 +19,12 @@
#include "modules.h"
#include "modes/cmode_o.h"
-ModeChannelOp::ModeChannelOp(InspIRCd* Instance) : ModeHandler(Instance, NULL, 'o', 1, 1, true, MODETYPE_CHANNEL, false, '@', '@', TR_NICK)
+ModeChannelOp::ModeChannelOp(InspIRCd* Instance) : ModeHandler(NULL, 'o', PARAM_ALWAYS, MODETYPE_CHANNEL)
{
+ list = true;
+ prefix = '@';
+ levelrequired = OP_VALUE;
+ m_paramtype = TR_NICK;
}
unsigned int ModeChannelOp::GetPrefixRank()
diff --git a/src/modes/cmode_t.cpp b/src/modes/cmode_t.cpp
index 6424e1f6c..b3f266086 100644
--- a/src/modes/cmode_t.cpp
+++ b/src/modes/cmode_t.cpp
@@ -17,7 +17,7 @@
#include "users.h"
#include "modes/cmode_t.h"
-ModeChannelTopicOps::ModeChannelTopicOps(InspIRCd* Instance) : ModeHandler(Instance, NULL, 't', 0, 0, false, MODETYPE_CHANNEL, false)
+ModeChannelTopicOps::ModeChannelTopicOps(InspIRCd* Instance) : ModeHandler(NULL, 't', PARAM_NONE, MODETYPE_CHANNEL)
{
}
diff --git a/src/modes/cmode_v.cpp b/src/modes/cmode_v.cpp
index 752dd509b..76faa8aae 100644
--- a/src/modes/cmode_v.cpp
+++ b/src/modes/cmode_v.cpp
@@ -20,8 +20,12 @@
#include "modules.h"
#include "modes/cmode_v.h"
-ModeChannelVoice::ModeChannelVoice(InspIRCd* Instance) : ModeHandler(Instance, NULL, 'v', 1, 1, true, MODETYPE_CHANNEL, false, '+', '%', TR_NICK)
+ModeChannelVoice::ModeChannelVoice(InspIRCd* Instance) : ModeHandler(NULL, 'v', PARAM_ALWAYS, MODETYPE_CHANNEL)
{
+ list = true;
+ prefix = '+';
+ levelrequired = HALFOP_VALUE;
+ m_paramtype = TR_NICK;
}
unsigned int ModeChannelVoice::GetPrefixRank()
diff --git a/src/modes/umode_i.cpp b/src/modes/umode_i.cpp
index caac9ff37..5c7c41b62 100644
--- a/src/modes/umode_i.cpp
+++ b/src/modes/umode_i.cpp
@@ -17,7 +17,7 @@
#include "users.h"
#include "modes/umode_i.h"
-ModeUserInvisible::ModeUserInvisible(InspIRCd* Instance) : SimpleUserModeHandler(Instance, NULL, 'i')
+ModeUserInvisible::ModeUserInvisible(InspIRCd* Instance) : SimpleUserModeHandler(NULL, 'i')
{
}
diff --git a/src/modes/umode_o.cpp b/src/modes/umode_o.cpp
index 02550ffe5..ec9b4ad5b 100644
--- a/src/modes/umode_o.cpp
+++ b/src/modes/umode_o.cpp
@@ -17,8 +17,9 @@
#include "users.h"
#include "modes/umode_o.h"
-ModeUserOperator::ModeUserOperator(InspIRCd* Instance) : ModeHandler(Instance, NULL, 'o', 0, 0, false, MODETYPE_USER, true)
+ModeUserOperator::ModeUserOperator(InspIRCd* Instance) : ModeHandler(NULL, 'o', PARAM_NONE, MODETYPE_USER)
{
+ oper = true;
}
ModeAction ModeUserOperator::OnModeChange(User* source, User* dest, Channel*, std::string&, bool adding)
diff --git a/src/modes/umode_s.cpp b/src/modes/umode_s.cpp
index c45c185dc..abfc480d9 100644
--- a/src/modes/umode_s.cpp
+++ b/src/modes/umode_s.cpp
@@ -17,8 +17,9 @@
#include "users.h"
#include "modes/umode_s.h"
-ModeUserServerNoticeMask::ModeUserServerNoticeMask(InspIRCd* Instance) : ModeHandler(Instance, NULL, 's', 1, 0, false, MODETYPE_USER, true)
+ModeUserServerNoticeMask::ModeUserServerNoticeMask(InspIRCd* Instance) : ModeHandler(NULL, 's', PARAM_SETONLY, MODETYPE_USER)
{
+ oper = true;
}
ModeAction ModeUserServerNoticeMask::OnModeChange(User* source, User* dest, Channel*, std::string &parameter, bool adding)
diff --git a/src/modes/umode_w.cpp b/src/modes/umode_w.cpp
index 5990fd2a0..8cc31094d 100644
--- a/src/modes/umode_w.cpp
+++ b/src/modes/umode_w.cpp
@@ -17,7 +17,7 @@
#include "users.h"
#include "modes/umode_w.h"
-ModeUserWallops::ModeUserWallops(InspIRCd* Instance) : SimpleUserModeHandler(Instance, NULL, 'w')
+ModeUserWallops::ModeUserWallops(InspIRCd* Instance) : SimpleUserModeHandler(NULL, 'w')
{
}
diff --git a/src/modules/m_auditorium.cpp b/src/modules/m_auditorium.cpp
index 35903a921..eab78bea9 100644
--- a/src/modules/m_auditorium.cpp
+++ b/src/modules/m_auditorium.cpp
@@ -18,7 +18,10 @@
class AuditoriumMode : public ModeHandler
{
public:
- AuditoriumMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'u', 0, 0, false, MODETYPE_CHANNEL, false, 0, '@') { }
+ AuditoriumMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'u', PARAM_NONE, MODETYPE_CHANNEL)
+ {
+ levelrequired = OP_VALUE;
+ }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_botmode.cpp b/src/modules/m_botmode.cpp
index 9ba154c15..0940a2147 100644
--- a/src/modules/m_botmode.cpp
+++ b/src/modules/m_botmode.cpp
@@ -20,7 +20,7 @@
class BotMode : public SimpleUserModeHandler
{
public:
- BotMode(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Instance, Creator, 'B') { }
+ BotMode(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Creator, 'B') { }
};
class ModuleBotMode : public Module
diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp
index 2e508399b..16b883f63 100644
--- a/src/modules/m_callerid.cpp
+++ b/src/modules/m_callerid.cpp
@@ -127,7 +127,7 @@ struct CallerIDExtInfo : public ExtensionItem
class User_g : public SimpleUserModeHandler
{
public:
- User_g(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Instance, Creator, 'g') { }
+ User_g(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Creator, 'g') { }
};
class CommandAccept : public Command
diff --git a/src/modules/m_censor.cpp b/src/modules/m_censor.cpp
index 2ffe2ab45..2c58e2ec4 100644
--- a/src/modules/m_censor.cpp
+++ b/src/modules/m_censor.cpp
@@ -26,7 +26,7 @@ typedef std::map<irc::string,irc::string> censor_t;
class CensorUser : public SimpleUserModeHandler
{
public:
- CensorUser(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Instance, Creator, 'G') { }
+ CensorUser(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Creator, 'G') { }
};
/** Handles channel mode +G
diff --git a/src/modules/m_chanprotect.cpp b/src/modules/m_chanprotect.cpp
index 1e03da617..fd121edcf 100644
--- a/src/modules/m_chanprotect.cpp
+++ b/src/modules/m_chanprotect.cpp
@@ -119,8 +119,14 @@ class ChanFounder : public ModeHandler, public FounderProtectBase
{
public:
ChanFounder(InspIRCd* Instance, Module* Creator, char my_prefix, bool &depriv_self, bool &depriv_others)
- : ModeHandler(Instance, Creator, 'q', 1, 1, true, MODETYPE_CHANNEL, false, my_prefix, 0, TR_NICK),
- FounderProtectBase(Instance, 'q', "founder", 386, 387, depriv_self, depriv_others) { }
+ : ModeHandler(Creator, 'q', PARAM_ALWAYS, MODETYPE_CHANNEL),
+ FounderProtectBase(Instance, 'q', "founder", 386, 387, depriv_self, depriv_others)
+ {
+ ModeHandler::list = true;
+ prefix = my_prefix;
+ levelrequired = FOUNDER_VALUE;
+ m_paramtype = TR_NICK;
+ }
unsigned int GetPrefixRank()
{
@@ -194,8 +200,14 @@ class ChanProtect : public ModeHandler, public FounderProtectBase
{
public:
ChanProtect(InspIRCd* Instance, Module* Creator, char my_prefix, bool &depriv_self, bool &depriv_others)
- : ModeHandler(Instance, Creator, 'a', 1, 1, true, MODETYPE_CHANNEL, false, my_prefix, 0, TR_NICK),
- FounderProtectBase(Instance,'a',"protected user", 388, 389, depriv_self, depriv_others) { }
+ : ModeHandler(Creator, 'a', PARAM_ALWAYS, MODETYPE_CHANNEL),
+ FounderProtectBase(Instance,'a',"protected user", 388, 389, depriv_self, depriv_others)
+ {
+ ModeHandler::list = true;
+ prefix = my_prefix;
+ levelrequired = PROTECT_VALUE;
+ m_paramtype = TR_NICK;
+ }
unsigned int GetPrefixRank()
{
diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp
index 2a348ba8b..221c23d64 100644
--- a/src/modules/m_cloaking.cpp
+++ b/src/modules/m_cloaking.cpp
@@ -64,7 +64,7 @@ class CloakUser : public ModeHandler
}
CloakUser(InspIRCd* Instance, Module* source, Module* Hash)
- : ModeHandler(Instance, source, 'x', 0, 0, false, MODETYPE_USER, false), HashProvider(Hash),
+ : ModeHandler(source, 'x', PARAM_NONE, MODETYPE_USER), HashProvider(Hash),
ext("cloaked_host", source)
{
}
diff --git a/src/modules/m_commonchans.cpp b/src/modules/m_commonchans.cpp
index d9e253758..4cda89f21 100644
--- a/src/modules/m_commonchans.cpp
+++ b/src/modules/m_commonchans.cpp
@@ -20,7 +20,7 @@
class PrivacyMode : public ModeHandler
{
public:
- PrivacyMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'c', 0, 0, false, MODETYPE_USER, false) { }
+ PrivacyMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'c', PARAM_NONE, MODETYPE_USER) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_deaf.cpp b/src/modules/m_deaf.cpp
index caad1feb1..bafa3adab 100644
--- a/src/modules/m_deaf.cpp
+++ b/src/modules/m_deaf.cpp
@@ -20,7 +20,7 @@
class User_d : public ModeHandler
{
public:
- User_d(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'd', 0, 0, false, MODETYPE_USER, false) { }
+ User_d(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'd', PARAM_NONE, MODETYPE_USER) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_delayjoin.cpp b/src/modules/m_delayjoin.cpp
index f182e18d0..ffaf1223b 100644
--- a/src/modules/m_delayjoin.cpp
+++ b/src/modules/m_delayjoin.cpp
@@ -19,7 +19,10 @@ class DelayJoinMode : public ModeHandler
private:
CUList empty;
public:
- DelayJoinMode(InspIRCd* Instance, Module* Parent) : ModeHandler(Instance, Parent, 'D', 0, 0, false, MODETYPE_CHANNEL, false, 0, '@') {};
+ DelayJoinMode(InspIRCd* Instance, Module* Parent) : ModeHandler(Parent, 'D', PARAM_NONE, MODETYPE_CHANNEL)
+ {
+ levelrequired = OP_VALUE;
+ }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
};
diff --git a/src/modules/m_delaymsg.cpp b/src/modules/m_delaymsg.cpp
index 3e9f2641c..1673d05ba 100644
--- a/src/modules/m_delaymsg.cpp
+++ b/src/modules/m_delaymsg.cpp
@@ -22,7 +22,11 @@ class DelayMsgMode : public ModeHandler
CUList empty;
public:
LocalIntExt jointime;
- DelayMsgMode(InspIRCd* Instance, Module* Parent) : ModeHandler(Instance, Parent, 'd', 1, 0, false, MODETYPE_CHANNEL, false, 0, '@'), jointime("delaymsg", Parent) {};
+ DelayMsgMode(InspIRCd* Instance, Module* Parent) : ModeHandler(Parent, 'd', PARAM_SETONLY, MODETYPE_CHANNEL)
+ , jointime("delaymsg", Parent)
+ {
+ levelrequired = OP_VALUE;
+ }
ModePair ModeSet(User*, User*, Channel* channel, const std::string &parameter)
{
diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp
index d8a544039..30dd8bcb4 100644
--- a/src/modules/m_helpop.cpp
+++ b/src/modules/m_helpop.cpp
@@ -22,7 +22,10 @@ static std::map<irc::string, std::string> helpop_map;
class Helpop : public ModeHandler
{
public:
- Helpop(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'h', 0, 0, false, MODETYPE_USER, true) { }
+ Helpop(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'h', PARAM_NONE, MODETYPE_USER)
+ {
+ oper = true;
+ }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_hidechans.cpp b/src/modules/m_hidechans.cpp
index 521920593..14f77ce17 100644
--- a/src/modules/m_hidechans.cpp
+++ b/src/modules/m_hidechans.cpp
@@ -20,7 +20,7 @@
class HideChans : public ModeHandler
{
public:
- HideChans(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'I', 0, 0, false, MODETYPE_USER, false) { }
+ HideChans(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'I', PARAM_NONE, MODETYPE_USER) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_hideoper.cpp b/src/modules/m_hideoper.cpp
index 757f2d9af..178fc8bc5 100644
--- a/src/modules/m_hideoper.cpp
+++ b/src/modules/m_hideoper.cpp
@@ -20,7 +20,10 @@
class HideOper : public ModeHandler
{
public:
- HideOper(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'H', 0, 0, false, MODETYPE_USER, true) { }
+ HideOper(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'H', PARAM_NONE, MODETYPE_USER)
+ {
+ oper = true;
+ }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_invisible.cpp b/src/modules/m_invisible.cpp
index cbdfcc600..ae54fa96b 100644
--- a/src/modules/m_invisible.cpp
+++ b/src/modules/m_invisible.cpp
@@ -1,5 +1,5 @@
/* +------------------------------------+
- * | Inspire Internet Relay Chat Daemon |
+ * | Inspire Internet Relay Chat Daemon
* +------------------------------------+
*
* InspIRCd: (C) 2002-2009 InspIRCd Development Team
@@ -19,8 +19,9 @@
class InvisibleMode : public ModeHandler
{
public:
- InvisibleMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'Q', 0, 0, false, MODETYPE_USER, true)
+ InvisibleMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'Q', PARAM_NONE, MODETYPE_USER)
{
+ oper = true;
}
~InvisibleMode()
diff --git a/src/modules/m_joinflood.cpp b/src/modules/m_joinflood.cpp
index fd2957db1..c53a6d1c4 100644
--- a/src/modules/m_joinflood.cpp
+++ b/src/modules/m_joinflood.cpp
@@ -87,7 +87,7 @@ class JoinFlood : public ModeHandler
{
public:
SimpleExtItem<joinfloodsettings> ext;
- JoinFlood(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'j', 1, 0, false, MODETYPE_CHANNEL, false),
+ JoinFlood(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'j', PARAM_SETONLY, MODETYPE_CHANNEL),
ext("joinflood", Creator) { }
ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
diff --git a/src/modules/m_kicknorejoin.cpp b/src/modules/m_kicknorejoin.cpp
index c151cb4e4..05deee417 100644
--- a/src/modules/m_kicknorejoin.cpp
+++ b/src/modules/m_kicknorejoin.cpp
@@ -31,7 +31,7 @@ class KickRejoin : public ModeHandler
{
public:
SimpleExtItem<delaylist> ext;
- KickRejoin(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'J', 1, 0, false, MODETYPE_CHANNEL, false),
+ KickRejoin(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'J', PARAM_SETONLY, MODETYPE_CHANNEL),
ext("norejoinusers", Creator) { }
ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
diff --git a/src/modules/m_messageflood.cpp b/src/modules/m_messageflood.cpp
index db17ee09d..bd586bcba 100644
--- a/src/modules/m_messageflood.cpp
+++ b/src/modules/m_messageflood.cpp
@@ -77,7 +77,7 @@ class MsgFlood : public ModeHandler
{
public:
SimpleExtItem<floodsettings> ext;
- MsgFlood(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'f', 1, 0, false, MODETYPE_CHANNEL, false),
+ MsgFlood(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'f', PARAM_SETONLY, MODETYPE_CHANNEL),
ext("messageflood", Creator) { }
ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
diff --git a/src/modules/m_nickflood.cpp b/src/modules/m_nickflood.cpp
index e2ec1e3ed..5a59814d4 100644
--- a/src/modules/m_nickflood.cpp
+++ b/src/modules/m_nickflood.cpp
@@ -91,7 +91,7 @@ class NickFlood : public ModeHandler
{
public:
SimpleExtItem<nickfloodsettings> ext;
- NickFlood(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'F', 1, 0, false, MODETYPE_CHANNEL, false),
+ NickFlood(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'F', PARAM_SETONLY, MODETYPE_CHANNEL),
ext("nickflood", Creator) { }
ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
diff --git a/src/modules/m_noctcp.cpp b/src/modules/m_noctcp.cpp
index ce79a5ff6..df3db0e12 100644
--- a/src/modules/m_noctcp.cpp
+++ b/src/modules/m_noctcp.cpp
@@ -18,7 +18,7 @@
class NoCTCP : public ModeHandler
{
public:
- NoCTCP(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'C', 0, 0, false, MODETYPE_CHANNEL, false) { }
+ NoCTCP(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'C', PARAM_NONE, MODETYPE_CHANNEL) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_nonicks.cpp b/src/modules/m_nonicks.cpp
index 31839c13a..70ecfdae0 100644
--- a/src/modules/m_nonicks.cpp
+++ b/src/modules/m_nonicks.cpp
@@ -18,7 +18,7 @@
class NoNicks : public ModeHandler
{
public:
- NoNicks(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'N', 0, 0, false, MODETYPE_CHANNEL, false) { }
+ NoNicks(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'N', PARAM_NONE, MODETYPE_CHANNEL) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_ojoin.cpp b/src/modules/m_ojoin.cpp
index 8c45c0d50..63be08a0f 100644
--- a/src/modules/m_ojoin.cpp
+++ b/src/modules/m_ojoin.cpp
@@ -105,9 +105,12 @@ class CommandOjoin : public Command
class NetworkPrefix : public ModeHandler
{
public:
- NetworkPrefix(InspIRCd* Instance, Module* parent)
- : ModeHandler(Instance, parent, 'Y', 1, 1, true, MODETYPE_CHANNEL, false, NPrefix, 0, TR_NICK)
+ NetworkPrefix(Module* parent) : ModeHandler(parent, 'Y', PARAM_ALWAYS, MODETYPE_CHANNEL)
{
+ list = true;
+ prefix = NPrefix;
+ levelrequired = 0xFFFFFFFF;
+ m_paramtype = TR_NICK;
}
ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
@@ -249,7 +252,7 @@ class ModuleOjoin : public Module
OnRehash(NULL);
/* Initialise module variables */
- np = new NetworkPrefix(Me, this);
+ np = new NetworkPrefix(this);
if (!ServerInstance->Modes->AddMode(np))
{
diff --git a/src/modules/m_operchans.cpp b/src/modules/m_operchans.cpp
index 52d5a28be..d97142e66 100644
--- a/src/modules/m_operchans.cpp
+++ b/src/modules/m_operchans.cpp
@@ -19,7 +19,7 @@ class OperChans : public ModeHandler
{
public:
/* This is an oper-only mode */
- OperChans(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'O', 0, 0, false, MODETYPE_CHANNEL, true) { }
+ OperChans(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'O', PARAM_NONE, MODETYPE_CHANNEL) { oper = true; }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_operprefix.cpp b/src/modules/m_operprefix.cpp
index f3137fc24..47f19e90d 100644
--- a/src/modules/m_operprefix.cpp
+++ b/src/modules/m_operprefix.cpp
@@ -24,7 +24,13 @@
class OperPrefixMode : public ModeHandler
{
public:
- OperPrefixMode(InspIRCd* Instance, Module* Creator, char pfx) : ModeHandler(Instance, Creator, 'y', 1, 1, true, MODETYPE_CHANNEL, false, pfx, pfx, TR_NICK) { }
+ OperPrefixMode(InspIRCd* Instance, Module* Creator, char pfx) : ModeHandler(Creator, 'y', PARAM_ALWAYS, MODETYPE_CHANNEL)
+ {
+ list = true;
+ prefix = pfx;
+ levelrequired = OPERPREFIX_VALUE;
+ m_paramtype = TR_NICK;
+ }
unsigned int GetPrefixRank()
{
diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp
index 3317b5c08..41a5daf33 100644
--- a/src/modules/m_permchannels.cpp
+++ b/src/modules/m_permchannels.cpp
@@ -83,7 +83,7 @@ static bool WriteDatabase(InspIRCd *ServerInstance)
class PermChannel : public ModeHandler
{
public:
- PermChannel(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'P', 0, 0, false, MODETYPE_CHANNEL, false) { }
+ PermChannel(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'P', PARAM_NONE, MODETYPE_CHANNEL) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_redirect.cpp b/src/modules/m_redirect.cpp
index 667ab307f..00fae3c53 100644
--- a/src/modules/m_redirect.cpp
+++ b/src/modules/m_redirect.cpp
@@ -20,7 +20,7 @@
class Redirect : public ModeHandler
{
public:
- Redirect(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'L', 1, 0, false, MODETYPE_CHANNEL, false) { }
+ Redirect(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'L', PARAM_SETONLY, MODETYPE_CHANNEL) { }
ModePair ModeSet(User* source, User* dest, Channel* channel, const std::string &parameter)
{
diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp
index cbbfac0a4..ef16d6ba1 100644
--- a/src/modules/m_services_account.cpp
+++ b/src/modules/m_services_account.cpp
@@ -22,7 +22,7 @@ class Channel_r : public ModeHandler
{
public:
- Channel_r(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'r', 0, 0, false, MODETYPE_CHANNEL, false) { }
+ Channel_r(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'r', PARAM_NONE, MODETYPE_CHANNEL) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
@@ -52,7 +52,7 @@ class User_r : public ModeHandler
{
public:
- User_r(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'r', 0, 0, false, MODETYPE_USER, false) { }
+ User_r(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'r', PARAM_NONE, MODETYPE_USER) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
@@ -86,7 +86,7 @@ class AChannel_R : public SimpleChannelModeHandler
class AUser_R : public SimpleUserModeHandler
{
public:
- AUser_R(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Instance, Creator, 'R') { }
+ AUser_R(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Creator, 'R') { }
};
/** Channel mode +M - unidentified users cannot message channel
diff --git a/src/modules/m_servprotect.cpp b/src/modules/m_servprotect.cpp
index 7ef77c089..f9661c3ea 100644
--- a/src/modules/m_servprotect.cpp
+++ b/src/modules/m_servprotect.cpp
@@ -20,7 +20,7 @@
class ServProtectMode : public ModeHandler
{
public:
- ServProtectMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'k', 0, 0, false, MODETYPE_USER, true) { }
+ ServProtectMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'k', PARAM_NONE, MODETYPE_USER) { oper = true; }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
@@ -34,8 +34,6 @@ class ServProtectMode : public ModeHandler
*/
return MODEACTION_DENY;
}
-
- bool NeedsOper() { return true; }
};
class ModuleServProtectMode : public Module
diff --git a/src/modules/m_showwhois.cpp b/src/modules/m_showwhois.cpp
index c6e9ed27c..8b55c3e96 100644
--- a/src/modules/m_showwhois.cpp
+++ b/src/modules/m_showwhois.cpp
@@ -20,7 +20,10 @@
class SeeWhois : public ModeHandler
{
public:
- SeeWhois(InspIRCd* Instance, Module* Creator, bool IsOpersOnly) : ModeHandler(Instance, Creator, 'W', 0, 0, false, MODETYPE_USER, IsOpersOnly) { }
+ SeeWhois(InspIRCd* Instance, Module* Creator, bool IsOpersOnly) : ModeHandler(Creator, 'W', PARAM_NONE, MODETYPE_USER)
+ {
+ oper = IsOpersOnly;
+ }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_sslmodes.cpp b/src/modules/m_sslmodes.cpp
index 396623eb9..b190cfc39 100644
--- a/src/modules/m_sslmodes.cpp
+++ b/src/modules/m_sslmodes.cpp
@@ -21,7 +21,7 @@
class SSLMode : public ModeHandler
{
public:
- SSLMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'z', 0, 0, false, MODETYPE_CHANNEL, false) { }
+ SSLMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Creator, 'z', PARAM_NONE, MODETYPE_CHANNEL) { }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
{
diff --git a/src/modules/m_stripcolor.cpp b/src/modules/m_stripcolor.cpp
index 7abe4f7d2..fa5dd17c7 100644
--- a/src/modules/m_stripcolor.cpp
+++ b/src/modules/m_stripcolor.cpp
@@ -28,7 +28,7 @@ class ChannelStripColor : public SimpleChannelModeHandler
class UserStripColor : public SimpleUserModeHandler
{
public:
- UserStripColor(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Instance, Creator, 'S') { }
+ UserStripColor(InspIRCd* Instance, Module* Creator) : SimpleUserModeHandler(Creator, 'S') { }
};