X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/9e7c93067226337decd23dd4fa0ed40dc123f6f4..4b1cce65ed584cc0fdc9f3c5ec84373fdf2566a8:/extensions/m_okick.c diff --git a/extensions/m_okick.c b/extensions/m_okick.c index 2a72e952..3bdfda6d 100644 --- a/extensions/m_okick.c +++ b/extensions/m_okick.c @@ -19,8 +19,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA - * - * $Id: m_okick.c 3554 2007-08-10 22:31:14Z jilles $ */ #include "stdinc.h" @@ -40,17 +38,18 @@ #include "messages.h" #include "logger.h" -static int mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]); +static const char okick_desc[] = "Allow admins to forcibly kick users from channels with the OKICK command"; +static void mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]); struct Message okick_msgtab = { - "OKICK", 0, 0, 0, MFLG_SLOW, + "OKICK", 0, 0, 0, 0, {mg_unreg, mg_not_oper, mg_ignore, mg_ignore, mg_ignore, {mo_okick, 4}} }; mapi_clist_av1 okick_clist[] = { &okick_msgtab, NULL }; -DECLARE_MODULE_AV1(okick, NULL, NULL, okick_clist, NULL, NULL, "$Revision: 3554 $"); +DECLARE_MODULE_AV2(okick, NULL, NULL, okick_clist, NULL, NULL, NULL, NULL, okick_desc); /* ** m_okick @@ -58,8 +57,8 @@ DECLARE_MODULE_AV1(okick, NULL, NULL, okick_clist, NULL, NULL, "$Revision: 3554 ** parv[2] = client to kick ** parv[3] = kick comment */ -static int -mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) +static void +mo_okick(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) { struct Client *who; struct Client *target_p; @@ -75,7 +74,7 @@ mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char if(*parv[2] == '\0') { sendto_one(source_p, form_str(ERR_NEEDMOREPARAMS), me.name, source_p->name, "KICK"); - return 0; + return; } if(MyClient(source_p) && !IsFloodDone(source_p)) @@ -95,7 +94,7 @@ mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char if(!chptr) { sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL, form_str(ERR_NOSUCHCHANNEL), name); - return 0; + return; } @@ -104,19 +103,19 @@ mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char user = LOCAL_COPY(parv[2]); // strtoken(&p2, parv[2], ","); if(!(who = find_chasing(source_p, user, &chasing))) { - return 0; + return; } if((target_p = find_client(user)) == NULL) { sendto_one(source_p, form_str(ERR_NOSUCHNICK), user); - return 0; + return; } if((msptr = find_channel_membership(chptr, target_p)) == NULL) { sendto_one(source_p, form_str(ERR_USERNOTINCHANNEL), parv[1], parv[2]); - return 0; + return; } sendto_wallops_flags(UMODE_WALLOP, &me, @@ -132,10 +131,9 @@ mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char me.name, chptr->chname, target_p->name, source_p->name, source_p->username, source_p->host); - sendto_channel_local(ALL_MEMBERS, chptr, ":%s KICK %s %s :%s", + sendto_channel_local(&me, ALL_MEMBERS, chptr, ":%s KICK %s %s :%s", me.name, chptr->chname, who->name, comment); sendto_server(&me, chptr, CAP_TS6, NOCAPS, ":%s KICK %s %s :%s", me.id, chptr->chname, who->id, comment); remove_user_from_channel(msptr); - return 0; }