]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_quit.cpp
Remove the last uses of localised fake clients. This removes a lot of allocations...
[user/henk/code/inspircd.git] / src / cmd_quit.cpp
index bb328de5b0b439ddc2dec64a7b06852b80826c2f..671e1ccef3c38acfc061f464e6ff08da20e3023a 100644 (file)
  */
 
 #include "inspircd.h"
-#include "configreader.h"
-#include "users.h"
-#include "modules.h"
 #include "commands/cmd_quit.h"
 
 
 
-extern "C" command_t* init_command(InspIRCd* Instance)
+extern "C" DllExport command_t* init_command(InspIRCd* Instance)
 {
        return new cmd_quit(Instance);
 }
 
 CmdResult cmd_quit::Handle (const char** parameters, int pcnt, userrec *user)
 {
-       userrec::QuitUser(ServerInstance, user, pcnt ? parameters[0] : "Client exited");
+
+       std::string quitmsg;
+
+       if (IS_LOCAL(user))
+       {
+               if (*ServerInstance->Config->FixedQuit)
+                       quitmsg = ServerInstance->Config->FixedQuit;
+               else
+                       quitmsg = pcnt ?
+                               ServerInstance->Config->PrefixQuit + std::string(parameters[0]) + ServerInstance->Config->SuffixQuit
+                               : "Client exited";
+       }
+       else
+               quitmsg = pcnt ? parameters[0] : "Client exited";
+
+       userrec::QuitUser(ServerInstance, user, quitmsg);
+
        return CMD_SUCCESS;
 }