X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcommands%2Fcmd_kick.cpp;h=174800cf5de03b41419d438bd156bc34d7afce2a;hb=b3ea96554e5334c27030c14b72ea1c69c253bde0;hp=c8b505ff0c7b4c46142e4ba4e2618b4a148d4db2;hpb=5d5285f24b1fe306faa2a6d0565ba1cff0f17f11;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/commands/cmd_kick.cpp b/src/commands/cmd_kick.cpp index c8b505ff0..174800cf5 100644 --- a/src/commands/cmd_kick.cpp +++ b/src/commands/cmd_kick.cpp @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2007 InspIRCd Development Team + * InspIRCd: (C) 2002-2008 InspIRCd Development Team * See: http://www.inspircd.org/wiki/index.php/Credits * * This program is free but copyrighted software; see @@ -21,31 +21,34 @@ extern "C" DllExport Command* init_command(InspIRCd* Instance) /** Handle /KICK */ -CmdResult CommandKick::Handle (const char** parameters, int pcnt, User *user) +CmdResult CommandKick::Handle (const std::vector& parameters, User *user) { char reason[MAXKICK]; Channel* c = ServerInstance->FindChan(parameters[0]); User* u = ServerInstance->FindNick(parameters[1]); + if (ServerInstance->Parser->LoopCall(user, this, parameters, 1)) + return CMD_SUCCESS; + if (!u || !c) { - user->WriteServ( "401 %s %s :No such nick/channel", user->nick, u ? parameters[0] : parameters[1]); + user->WriteServ( "401 %s %s :No such nick/channel", user->nick.c_str(), u ? parameters[0].c_str() : parameters[1].c_str()); return CMD_FAILURE; } if ((IS_LOCAL(user)) && (!c->HasUser(user)) && (!ServerInstance->ULine(user->server))) { - user->WriteServ( "442 %s %s :You're not on that channel!", user->nick, parameters[0]); + user->WriteServ( "442 %s %s :You're not on that channel!", user->nick.c_str(), parameters[0].c_str()); return CMD_FAILURE; } - if (pcnt > 2) + if (parameters.size() > 2) { - strlcpy(reason, parameters[2], MAXKICK - 1); + strlcpy(reason, parameters[2].c_str(), MAXKICK - 1); } else { - strlcpy(reason, user->nick, MAXKICK - 1); + strlcpy(reason, user->nick.c_str(), MAXKICK - 1); } if (!c->KickUser(user, u, reason))