]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Add operonly aliases, <alias:operonly> (boolean).
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 17 Sep 2006 15:10:27 +0000 (15:10 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 17 Sep 2006 15:10:27 +0000 (15:10 +0000)
Any operonly aliases that are executed by non-oper appear to not exist

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5270 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/m_alias.cpp

index fc07b5f2dc0469b8d60413488270e260ccc6c36a..bf085fcc0403e26d4919860d71e3438c4dd7d9d5 100644 (file)
@@ -37,6 +37,8 @@ class Alias : public classbase
        std::string requires;
        /** Alias requires ulined server */
        bool uline;
+       /** Requires oper? */
+       bool operonly;
 };
 
 class ModuleAlias : public Module
@@ -60,7 +62,7 @@ class ModuleAlias : public Module
                        a.replace_with = MyConf.ReadValue("alias", "replace", i);
                        a.requires = MyConf.ReadValue("alias", "requires", i);
                        a.uline = MyConf.ReadFlag("alias", "uline", i);
-       
+                       a.operonly = MyConf.ReadFlag("alias", "operonly", i);
                        Aliases.push_back(a);
                }
 
@@ -144,6 +146,9 @@ class ModuleAlias : public Module
                {
                        if (Aliases[i].text == c)
                        {
+                               if ((Aliases[i].operonly) && (!*user->oper))
+                                       return 0;
+
                                if (Aliases[i].requires != "")
                                {
                                        u = ServerInstance->FindNick(Aliases[i].requires);