#include "modules.h"
#include "commands/cmd_kill.h"
-void cmd_kill::Handle (const char** parameters, int pcnt, userrec *user)
+extern "C" command_t* init_command(InspIRCd* Instance)
+{
+ return new cmd_kill(Instance);
+}
+
+/** Handle /KILL
+ */
+CmdResult cmd_kill::Handle (const char** parameters, int pcnt, userrec *user)
{
userrec *u = ServerInstance->FindNick(parameters[0]);
char killreason[MAXBUF];
if (MOD_RESULT)
{
ServerInstance->Log(DEBUG, "A module prevented the kill with result %d", MOD_RESULT);
- return;
+ return CMD_FAILURE;
}
if (!IS_LOCAL(u))
u->PurgeEmptyChannels();
}
+ if (u == user)
+ {
+ std::string original_command = std::string("KILL ") + u->nick + " :"+parameters[1];
+ FOREACH_MOD(I_OnPostCommand,OnPostCommand("KILL", parameters, pcnt, user, CMD_SUCCESS,original_command));
+ return CMD_USER_DELETED;
+ }
DELETE(u);
}
else
else
{
user->WriteServ( "401 %s %s :No such nick/channel", user->nick, parameters[0]);
+ return CMD_FAILURE;
}
+
+ return CMD_SUCCESS;
}