]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_oper/cmd_kill.cpp
Merge insp20
[user/henk/code/inspircd.git] / src / coremods / core_oper / cmd_kill.cpp
index b60885c6404aa6594d705a7587c6026d2eecad18..e75566e2fcea19bb079eb8bf53c1d870607a0903 100644 (file)
@@ -44,7 +44,7 @@ CmdResult CommandKill::Handle (const std::vector<std::string>& parameters, User
        }
 
        User *u = ServerInstance->FindNick(parameters[0]);
-       if ((u) && (!IS_SERVER(u)))
+       if (u)
        {
                /*
                 * Here, we need to decide how to munge kill messages. Whether to hide killer, what to show opers, etc.
@@ -93,7 +93,7 @@ CmdResult CommandKill::Handle (const std::vector<std::string>& parameters, User
                if (!IS_LOCAL(u))
                {
                        // remote kill
-                       if (!user->server->IsULine())
+                       if ((!ServerInstance->Config->HideULineKills) || (!user->server->IsULine()))
                                ServerInstance->SNO->WriteToSnoMask('K', "Remote kill by %s: %s (%s)", user->nick.c_str(), u->GetFullRealHost().c_str(), parameters[1].c_str());
                        this->lastuuid = u->uuid;
                }
@@ -104,7 +104,7 @@ CmdResult CommandKill::Handle (const std::vector<std::string>& parameters, User
                         * XXX - this isn't entirely correct, servers A - B - C, oper on A, client on C. Oper kills client, A and B will get remote kill
                         * snotices, C will get a local kill snotice. this isn't accurate, and needs fixing at some stage. -- w00t
                         */
-                       if (!user->server->IsULine())
+                       if ((!ServerInstance->Config->HideULineKills) || (!user->server->IsULine()))
                        {
                                if (IS_LOCAL(user))
                                        ServerInstance->SNO->WriteGlobalSno('k',"Local Kill by %s: %s (%s)", user->nick.c_str(), u->GetFullRealHost().c_str(), parameters[1].c_str());
@@ -117,7 +117,7 @@ CmdResult CommandKill::Handle (const std::vector<std::string>& parameters, User
                        u->Write(":%s KILL %s :%s!%s!%s (%s)", ServerInstance->Config->HideKillsServer.empty() ? user->GetFullHost().c_str() : ServerInstance->Config->HideKillsServer.c_str(),
                                        u->nick.c_str(),
                                        ServerInstance->Config->ServerName.c_str(),
-                                       user->dhost.c_str(),
+                                       ServerInstance->Config->HideKillsServer.empty() ? user->dhost.c_str() : ServerInstance->Config->HideKillsServer.c_str(),
                                        ServerInstance->Config->HideKillsServer.empty() ? user->nick.c_str() : ServerInstance->Config->HideKillsServer.c_str(),
                                        parameters[1].c_str());
 
@@ -129,7 +129,7 @@ CmdResult CommandKill::Handle (const std::vector<std::string>& parameters, User
        }
        else
        {
-               user->WriteNumeric(ERR_NOSUCHNICK, "%s :No such nick/channel", parameters[0].c_str());
+               user->WriteNumeric(Numerics::NoSuchNick(parameters[0]));
                return CMD_FAILURE;
        }