summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mode.h4
-rw-r--r--src/mode.cpp4
-rw-r--r--src/modes/cmode_o.cpp4
-rw-r--r--src/modes/cmode_v.cpp4
-rw-r--r--src/modules/m_customprefix.cpp3
-rw-r--r--src/modules/m_ojoin.cpp4
-rw-r--r--src/modules/m_operprefix.cpp4
7 files changed, 11 insertions, 16 deletions
diff --git a/include/mode.h b/include/mode.h
index ffa5308f3..3e30d5b88 100644
--- a/include/mode.h
+++ b/include/mode.h
@@ -344,8 +344,10 @@ class CoreExport PrefixMode : public ModeHandler
* @param Creator The module creating this mode
* @param Name The user-friendly one word name of the prefix mode, e.g.: "op", "voice"
* @param ModeLetter The mode letter of this mode
+ * @param Rank Rank given by this prefix mode, see explanation above
+ * @param PrefixChar Prefix character, or 0 if the mode has no prefix character
*/
- PrefixMode(Module* Creator, const std::string& Name, char ModeLetter);
+ PrefixMode(Module* Creator, const std::string& Name, char ModeLetter, unsigned int Rank = 0, char PrefixChar = 0);
/**
* Handles setting and unsetting the prefix mode.
diff --git a/src/mode.cpp b/src/mode.cpp
index bd7adbd65..3fcfcbd51 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -182,9 +182,9 @@ void ModeParser::DisplayCurrentModes(User *user, User* targetuser, Channel* targ
}
}
-PrefixMode::PrefixMode(Module* Creator, const std::string& Name, char ModeLetter)
+PrefixMode::PrefixMode(Module* Creator, const std::string& Name, char ModeLetter, unsigned int Rank, char PrefixChar)
: ModeHandler(Creator, Name, ModeLetter, PARAM_ALWAYS, MODETYPE_CHANNEL, MC_PREFIX)
- , prefix(0), prefixrank(0)
+ , prefix(PrefixChar), prefixrank(Rank)
{
list = true;
m_paramtype = TR_NICK;
diff --git a/src/modes/cmode_o.cpp b/src/modes/cmode_o.cpp
index 496a32718..4325b94a3 100644
--- a/src/modes/cmode_o.cpp
+++ b/src/modes/cmode_o.cpp
@@ -23,9 +23,7 @@
#include "inspircd.h"
#include "builtinmodes.h"
-ModeChannelOp::ModeChannelOp() : PrefixMode(NULL, "op", 'o')
+ModeChannelOp::ModeChannelOp() : PrefixMode(NULL, "op", 'o', OP_VALUE, '@')
{
- prefix = '@';
levelrequired = OP_VALUE;
- prefixrank = OP_VALUE;
}
diff --git a/src/modes/cmode_v.cpp b/src/modes/cmode_v.cpp
index d6108a984..5ecc10c9d 100644
--- a/src/modes/cmode_v.cpp
+++ b/src/modes/cmode_v.cpp
@@ -23,9 +23,7 @@
#include "inspircd.h"
#include "builtinmodes.h"
-ModeChannelVoice::ModeChannelVoice() : PrefixMode(NULL, "voice", 'v')
+ModeChannelVoice::ModeChannelVoice() : PrefixMode(NULL, "voice", 'v', VOICE_VALUE, '+')
{
- prefix = '+';
levelrequired = HALFOP_VALUE;
- prefixrank = VOICE_VALUE;
}
diff --git a/src/modules/m_customprefix.cpp b/src/modules/m_customprefix.cpp
index 65c2cbd31..f6f9a84f6 100644
--- a/src/modules/m_customprefix.cpp
+++ b/src/modules/m_customprefix.cpp
@@ -26,14 +26,13 @@ class CustomPrefixMode : public PrefixMode
bool depriv;
CustomPrefixMode(Module* parent, ConfigTag* Tag)
- : PrefixMode(parent, Tag->getString("name"), 0)
+ : PrefixMode(parent, Tag->getString("name"), 0, Tag->getInt("rank"))
, tag(Tag)
{
std::string v = tag->getString("prefix");
prefix = v.c_str()[0];
v = tag->getString("letter");
mode = v.c_str()[0];
- prefixrank = tag->getInt("rank");
levelrequired = tag->getInt("ranktoset", prefixrank);
depriv = tag->getBool("depriv", true);
}
diff --git a/src/modules/m_ojoin.cpp b/src/modules/m_ojoin.cpp
index 120715429..e3cbbbb41 100644
--- a/src/modules/m_ojoin.cpp
+++ b/src/modules/m_ojoin.cpp
@@ -87,11 +87,9 @@ class NetworkPrefix : public PrefixMode
{
public:
NetworkPrefix(Module* parent, char NPrefix)
- : PrefixMode(parent, "official-join", 'Y')
+ : PrefixMode(parent, "official-join", 'Y', NETWORK_VALUE, NPrefix)
{
- prefix = NPrefix;
levelrequired = INT_MAX;
- prefixrank = NETWORK_VALUE;
}
ModResult AccessCheck(User* source, Channel* channel, std::string &parameter, bool adding)
diff --git a/src/modules/m_operprefix.cpp b/src/modules/m_operprefix.cpp
index 3f05dd086..262c034db 100644
--- a/src/modules/m_operprefix.cpp
+++ b/src/modules/m_operprefix.cpp
@@ -29,12 +29,12 @@
class OperPrefixMode : public PrefixMode
{
public:
- OperPrefixMode(Module* Creator) : PrefixMode(Creator, "operprefix", 'y')
+ OperPrefixMode(Module* Creator)
+ : PrefixMode(Creator, "operprefix", 'y', OPERPREFIX_VALUE)
{
std::string pfx = ServerInstance->Config->ConfValue("operprefix")->getString("prefix", "!");
prefix = pfx.empty() ? '!' : pfx[0];
levelrequired = INT_MAX;
- prefixrank = OPERPREFIX_VALUE;
}
};