]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_customprefix.cpp
Replace hardcoded mode letters, part 3
[user/henk/code/inspircd.git] / src / modules / m_customprefix.cpp
index 67d1d2fe98ef57f8deaa96049a77b90bb9000e9f..bda11e8b31761ad932279780322d2d5f08c8baf0 100644 (file)
 
 #include "inspircd.h"
 
-/* $ModDesc: Allows custom prefix modes to be created. */
-
 class CustomPrefixMode : public ModeHandler
 {
  public:
        reference<ConfigTag> tag;
-       int rank;
        bool depriv;
+
        CustomPrefixMode(Module* parent, ConfigTag* Tag)
                : ModeHandler(parent, Tag->getString("name"), 0, PARAM_ALWAYS, MODETYPE_CHANNEL), tag(Tag)
        {
@@ -36,16 +34,11 @@ class CustomPrefixMode : public ModeHandler
                prefix = v.c_str()[0];
                v = tag->getString("letter");
                mode = v.c_str()[0];
-               rank = tag->getInt("rank");
-               levelrequired = tag->getInt("ranktoset", rank);
+               prefixrank = tag->getInt("rank");
+               levelrequired = tag->getInt("ranktoset", prefixrank);
                depriv = tag->getBool("depriv", true);
        }
 
-       unsigned int GetPrefixRank()
-       {
-               return rank;
-       }
-
        ModResult AccessCheck(User* src, Channel*, std::string& value, bool adding)
        {
                if (!adding && src->nick == value && depriv)
@@ -72,7 +65,7 @@ class ModuleCustomPrefix : public Module
                        tags.first++;
                        CustomPrefixMode* mh = new CustomPrefixMode(this, tag);
                        modes.push_back(mh);
-                       if (mh->rank <= 0)
+                       if (mh->GetPrefixRank() == 0)
                                throw ModuleException("Rank must be specified for prefix at " + tag->getTagLocation());
                        if (!isalpha(mh->GetModeChar()))
                                throw ModuleException("Mode must be a letter for prefix at " + tag->getTagLocation());