]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_samode.cpp
Move OnSync{Channel,Network,User} to ServerEventListener.
[user/henk/code/inspircd.git] / src / modules / m_samode.cpp
index caf1f27c48c57646ec9d51f8ea2d70b4017b751a..5c3d59edb82463c48b8a0fe6bc8080ad84a201a3 100644 (file)
@@ -31,25 +31,23 @@ class CommandSamode : public Command
        CommandSamode(Module* Creator) : Command(Creator,"SAMODE", 2)
        {
                allow_empty_last_param = false;
-               flags_needed = 'o'; Penalty = 0; syntax = "<target> <modes> {<mode-parameters>}";
+               flags_needed = 'o'; syntax = "<target> <modes> {<mode-parameters>}";
                active = false;
        }
 
-       CmdResult Handle (const std::vector<std::string>& parameters, User *user)
+       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
        {
                if (parameters[0].c_str()[0] != '#')
                {
                        User* target = ServerInstance->FindNickOnly(parameters[0]);
                        if ((!target) || (target->registered != REG_ALL))
                        {
-                               user->WriteNumeric(ERR_NOSUCHNICK, "%s %s :No such nick/channel", user->nick.c_str(), parameters[0].c_str());
+                               user->WriteNumeric(Numerics::NoSuchNick(parameters[0]));
                                return CMD_FAILURE;
                        }
-               }
-               User* target = ServerInstance->FindNick(parameters[0]);
-               if ((target) && (target != user))
-               {
-                       if (!user->HasPrivPermission("users/samode-usermodes", true))
+
+                       // Changing the modes of another user requires a special permission
+                       if ((target != user) && (!user->HasPrivPermission("users/samode-usermodes", true)))
                                return CMD_FAILURE;
                }
 
@@ -98,10 +96,10 @@ class ModuleSaMode : public Module
                return MOD_RES_PASSTHRU;
        }
 
-       void Prioritize()
+       void Prioritize() CXX11_OVERRIDE
        {
                Module *override = ServerInstance->Modules->Find("m_override.so");
-               ServerInstance->Modules->SetPriority(this, I_OnPreMode, PRIORITY_BEFORE, &override);
+               ServerInstance->Modules->SetPriority(this, I_OnPreMode, PRIORITY_BEFORE, override);
        }
 };