*/
#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");
- return CMD_USER_DELETED;
+
+ 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;
}