]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_kick.cpp
OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.
[user/henk/code/inspircd.git] / src / cmd_kick.cpp
index 263cf35c540a089c4785413adad77b98f22c41f4..17933a43f9a7467fb5d3a17f9d05fa09da658a4b 100644 (file)
@@ -1 +1,58 @@
-/*       +------------------------------------+\r *       | Inspire Internet Relay Chat Daemon |\r *       +------------------------------------+\r *\r *  InspIRCd: (C) 2002-2007 InspIRCd Development Team\r * See: http://www.inspircd.org/wiki/index.php/Credits\r *\r * This program is free but copyrighted software; see\r *            the file COPYING for details.\r *\r * ---------------------------------------------------\r */\r\r#include "inspircd.h"\r#include "users.h"\r#include "inspircd.h"\r#include "commands/cmd_kick.h"\r\rextern "C" DllExport command_t* init_command(InspIRCd* Instance)\r{\r return new cmd_kick(Instance);\r}\r\r/** Handle /KICK\r */\rCmdResult cmd_kick::Handle (const char** parameters, int pcnt, userrec *user)\r{\r char reason[MAXKICK];\r  chanrec* c = ServerInstance->FindChan(parameters[0]);\r  userrec* u = ServerInstance->FindNick(parameters[1]);\r\r if (!u || !c)\r  {\r              user->WriteServ( "401 %s %s :No such nick/channel", user->nick, u ? parameters[0] : parameters[1]);\r            return CMD_FAILURE;\r    }\r\r     if ((IS_LOCAL(user)) && (!c->HasUser(user)) && (!ServerInstance->ULine(user->server)))\r {\r              user->WriteServ( "442 %s %s :You're not on that channel!", user->nick, parameters[0]);\r         return CMD_FAILURE;\r    }\r\r     if (pcnt > 2)\r  {\r              strlcpy(reason, parameters[2], MAXKICK - 1);\r   }\r      else\r   {\r              strlcpy(reason, user->nick, MAXKICK - 1);\r      }\r\r     if (!c->KickUser(user, u, reason))\r             /* Nobody left here, delete the chanrec */\r             delete c;\r\r     return CMD_SUCCESS;\r}\r
\ No newline at end of file
+/*       +------------------------------------+
+ *       | Inspire Internet Relay Chat Daemon |
+ *       +------------------------------------+
+ *
+ *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
+ * This program is free but copyrighted software; see
+ *            the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
+
+#include "inspircd.h"
+#include "users.h"
+#include "inspircd.h"
+#include "commands/cmd_kick.h"
+
+extern "C" DllExport command_t* init_command(InspIRCd* Instance)
+{
+       return new cmd_kick(Instance);
+}
+
+/** Handle /KICK
+ */
+CmdResult cmd_kick::Handle (const char** parameters, int pcnt, userrec *user)
+{
+       char reason[MAXKICK];
+       chanrec* c = ServerInstance->FindChan(parameters[0]);
+       userrec* u = ServerInstance->FindNick(parameters[1]);
+
+       if (!u || !c)
+       {
+               user->WriteServ( "401 %s %s :No such nick/channel", user->nick, u ? parameters[0] : parameters[1]);
+               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]);
+               return CMD_FAILURE;
+       }
+
+       if (pcnt > 2)
+       {
+               strlcpy(reason, parameters[2], MAXKICK - 1);
+       }
+       else
+       {
+               strlcpy(reason, user->nick, MAXKICK - 1);
+       }
+
+       if (!c->KickUser(user, u, reason))
+               /* Nobody left here, delete the chanrec */
+               delete c;
+
+       return CMD_SUCCESS;
+}