X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcmd_kick.cpp;h=07b3896894eec83de57d89fea6def9cb63ddd1d2;hb=6050df73f498d05597fb37c6157868df1f6f4db2;hp=4743f47df91c53991a6759767d160a07c3e57ed5;hpb=0757a4a495daabf661ac3b7ab79f0a5ee423abe8;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/cmd_kick.cpp b/src/cmd_kick.cpp index 4743f47df..07b389689 100644 --- a/src/cmd_kick.cpp +++ b/src/cmd_kick.cpp @@ -17,24 +17,27 @@ #include "inspircd_config.h" #include "users.h" #include "commands.h" -#include "helperfuncs.h" + +#include "inspircd.h" #include "commands/cmd_kick.h" + + void cmd_kick::Handle (const char** parameters, int pcnt, userrec *user) { char reason[MAXKICK]; - chanrec* c = FindChan(parameters[0]); - userrec* u = Find(parameters[1]); + chanrec* c = ServerInstance->FindChan(parameters[0]); + userrec* u = ServerInstance->FindNick(parameters[1]); if (!u || !c) { - WriteServ(user->fd, "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, u ? parameters[0] : parameters[1]); return; } - if ((IS_LOCAL(user)) && (!c->HasUser(user)) && (!is_uline(user->server))) + if ((IS_LOCAL(user)) && (!c->HasUser(user)) && (!ServerInstance->ULine(user->server))) { - WriteServ(user->fd, "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, parameters[0]); return; } @@ -47,5 +50,7 @@ void cmd_kick::Handle (const char** parameters, int pcnt, userrec *user) strlcpy(reason, user->nick, MAXKICK - 1); } - kick_channel(user, u, c, reason); + if (!c->KickUser(user, u, reason)) + /* Nobody left here, delete the chanrec */ + delete c; }