]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
Calculate hosts on connect so theres no way around a ban on your cloak, even if you...
[user/henk/code/inspircd.git] / src / mode.cpp
index 6805c348c8629cf7e53167dc978abea91a93d1a9..34234586997320085ec5bf9362e6f0c2203695bf 100644 (file)
@@ -579,12 +579,23 @@ void ModeParser::Process(const char* const* parameters, int pcnt, User *user, bo
                                                         */
                                                        if ((IS_LOCAL(user)) && (modehandlers[handler_id]->NeedsOper()) && (!user->HasModePermission(modehandlers[handler_id]->GetModeChar(), type)))
                                                        {
-                                                               user->WriteNumeric(481, "%s :Permission Denied - Oper type %s does not have access to %sset %s mode %c",
-                                                                               user->nick,
-                                                                               user->oper,
-                                                                               adding ? "" : "un",
-                                                                               type == MODETYPE_CHANNEL ? "channel" : "user",
-                                                                               modehandlers[handler_id]->GetModeChar());
+                                                               if (IS_OPER(user))
+                                                               {
+                                                                       user->WriteNumeric(481, "%s :Permission Denied - Oper type %s does not have access to %sset %s mode %c",
+                                                                                       user->nick,
+                                                                                       user->oper,
+                                                                                       adding ? "" : "un",
+                                                                                       type == MODETYPE_CHANNEL ? "channel" : "user",
+                                                                                       modehandlers[handler_id]->GetModeChar());
+                                                               }
+                                                               else
+                                                               {
+                                                                       user->WriteNumeric(481, "%s :Permission Denied - Only operators may %sset %s mode %c",
+                                                                                       user->nick,
+                                                                                       adding ? "" : "un",
+                                                                                       type == MODETYPE_CHANNEL ? "channel" : "user",
+                                                                                       modehandlers[handler_id]->GetModeChar());
+                                                               }
                                                                continue;
                                                        }