]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/users.cpp
Pass the ModeHandler to User::HasModePermission()
[user/henk/code/inspircd.git] / src / users.cpp
index 24b2928ae052e55503013aa696782be294604bcd..5d1c12b136c1979863d90af3dc4e0b46ce64bee9 100644 (file)
@@ -51,7 +51,7 @@ const char* User::FormatModes(bool showparameters)
                if (mh && IsModeSet(mh))
                {
                        data.push_back(n + 65);
-                       if (showparameters && mh->GetNumParams(true))
+                       if (showparameters && mh->NeedsParam(true))
                        {
                                std::string p = mh->GetUserParameter(this);
                                if (p.length())
@@ -153,19 +153,20 @@ const std::string& User::GetFullRealHost()
        return this->cached_fullrealhost;
 }
 
-bool User::HasModePermission(unsigned char, ModeType)
+bool User::HasModePermission(const ModeHandler* mh) const
 {
        return true;
 }
 
-bool LocalUser::HasModePermission(unsigned char mode, ModeType type)
+bool LocalUser::HasModePermission(const ModeHandler* mh) const
 {
        if (!this->IsOper())
                return false;
 
+       const unsigned char mode = mh->GetModeChar();
        if (mode < 'A' || mode > ('A' + 64)) return false;
 
-       return ((type == MODETYPE_USER ? oper->AllowedUserModes : oper->AllowedChanModes))[(mode - 'A')];
+       return ((mh->GetModeType() == MODETYPE_USER ? oper->AllowedUserModes : oper->AllowedChanModes))[(mode - 'A')];
 
 }
 /*