X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcoremods%2Fcore_channel%2Fcmd_kick.cpp;h=b9fdbef252e23aa15102c37559e665b59b1b5cb6;hb=f3d3ccaac1038775bf2cca62066e32cc2d52edc4;hp=420ed2b83ddc2f0e2fb0475f3148ff0792515722;hpb=257bf752fc6b87fa35bfa8cf95fc37730c3d55c6;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 420ed2b83..b9fdbef25 100644 --- a/src/coremods/core_channel/cmd_kick.cpp +++ b/src/coremods/core_channel/cmd_kick.cpp @@ -1,8 +1,16 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2017-2018 Sadie Powell + * Copyright (C) 2017 B00mX0r + * Copyright (C) 2013-2014, 2016 Attila Molnar + * Copyright (C) 2012, 2019 Robby + * Copyright (C) 2009-2010 Daniel De Graaf + * Copyright (C) 2009 Uli Schlachter + * Copyright (C) 2008 Thomas Stagner + * Copyright (C) 2007-2008 Dennis Friis * Copyright (C) 2007 Robin Burchell + * Copyright (C) 2006 Craig Edwards * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -24,12 +32,12 @@ CommandKick::CommandKick(Module* parent) : Command(parent, "KICK", 2, 3) { - syntax = " {,} []"; + syntax = " [,]+ [:]"; } /** 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 +50,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; } @@ -60,7 +73,7 @@ CmdResult CommandKick::Handle (const std::vector& parameters, User if (u->server->IsULine()) { - user->WriteNumeric(ERR_CHANOPRIVSNEEDED, c->name, "You may not kick a u-lined client"); + user->WriteNumeric(ERR_CHANOPRIVSNEEDED, c->name, "You may not kick a U-lined client"); return CMD_FAILURE; } } @@ -122,7 +135,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); }