X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcommands%2Fcmd_kick.cpp;h=b59eec0309ae181a6d1dadeddbc8736fadd3801f;hb=882084defcc43c876ecb10e30086b63ac074fcad;hp=ecbdbad1e40b9c651c5d47e976929620b5c16794;hpb=6db924458501457768d7ddafd5de8a69839f6399;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/commands/cmd_kick.cpp b/src/commands/cmd_kick.cpp index ecbdbad1e..b59eec030 100644 --- a/src/commands/cmd_kick.cpp +++ b/src/commands/cmd_kick.cpp @@ -38,6 +38,10 @@ class CommandKick : public Command * @return A value from CmdResult to indicate command success or failure. */ CmdResult Handle(const std::vector& parameters, User *user); + RouteDescriptor GetRouting(User* user, const std::vector& parameters) + { + return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); + } }; /** Handle /KICK @@ -48,7 +52,7 @@ CmdResult CommandKick::Handle (const std::vector& parameters, User Channel* c = ServerInstance->FindChan(parameters[0]); User* u; - if (ServerInstance->Parser->LoopCall(user, this, parameters, 1)) + if (CommandParser::LoopCall(user, this, parameters, 1)) return CMD_SUCCESS; if (IS_LOCAL(user)) @@ -62,9 +66,11 @@ CmdResult CommandKick::Handle (const std::vector& parameters, User return CMD_FAILURE; } + Membership* srcmemb = NULL; if (IS_LOCAL(user)) { - if (!c->HasUser(user)) + srcmemb = c->GetUser(user); + if (!srcmemb) { user->WriteServ( "442 %s %s :You're not on that channel!", user->nick.c_str(), parameters[0].c_str()); return CMD_FAILURE; @@ -86,7 +92,7 @@ CmdResult CommandKick::Handle (const std::vector& parameters, User reason.assign(user->nick, 0, ServerInstance->Config->Limits.MaxKick); } - c->KickUser(user, u, reason); + c->KickUser(user, u, reason, srcmemb); return CMD_SUCCESS; }