X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcoremods%2Fcore_channel%2Fcmd_kick.cpp;h=755c6613b9cbfb95ec8b9ee02d04d284ac6e3fbb;hb=4fbd6681fedbff9b4cb04cc774f785cbe8b5c35b;hp=7f8a8a3291d28d0c445db47e8d34df945917c7b6;hpb=c6a508a3da977041909f18f77d6e8fea942512cf;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_channel/cmd_kick.cpp b/src/coremods/core_channel/cmd_kick.cpp index 7f8a8a329..755c6613b 100644 --- a/src/coremods/core_channel/cmd_kick.cpp +++ b/src/coremods/core_channel/cmd_kick.cpp @@ -29,7 +29,7 @@ CommandKick::CommandKick(Module* parent) /** Handle /KICK */ -CmdResult CommandKick::Handle (const std::vector& parameters, User *user) +CmdResult CommandKick::Handle(User* user, const Params& parameters) { Channel* c = ServerInstance->FindChan(parameters[0]); User* u; @@ -42,9 +42,14 @@ CmdResult CommandKick::Handle (const std::vector& parameters, User else u = ServerInstance->FindNick(parameters[1]); - if ((!u) || (!c) || (u->registered != REG_ALL)) + if (!c) { - user->WriteNumeric(Numerics::NoSuchNick(c ? parameters[1] : parameters[0])); + user->WriteNumeric(Numerics::NoSuchChannel(parameters[0])); + return CMD_FAILURE; + } + if ((!u) || (u->registered != REG_ALL)) + { + user->WriteNumeric(Numerics::NoSuchNick(parameters[1])); return CMD_FAILURE; } @@ -104,8 +109,8 @@ CmdResult CommandKick::Handle (const std::vector& parameters, User for (std::string::size_type i = 0; i < memb->modes.length(); i++) { ModeHandler* mh = ServerInstance->Modes->FindMode(memb->modes[i], MODETYPE_CHANNEL); - if (mh && mh->GetLevelRequired() > req) - req = mh->GetLevelRequired(); + if (mh && mh->GetLevelRequired(true) > req) + req = mh->GetLevelRequired(true); } if (them < req) @@ -122,7 +127,7 @@ CmdResult CommandKick::Handle (const std::vector& parameters, User return CMD_SUCCESS; } -RouteDescriptor CommandKick::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandKick::GetRouting(User* user, const Params& parameters) { return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); }