]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/chancmds/permban.c
1 /* Automatically generated by refactor.pl.
5 * CMDLEVEL: QCMD_AUTHED
7 * CMDDESC: Permanently bans a hostmask on a channel.
8 * CMDFUNC: csc_dopermban
9 * CMDPROTO: int csc_dopermban(void *source, int cargc, char **cargv);
10 * CMDHELP: Usage: PERMBAN <channel> <hostmask> [<reason>]
11 * CMDHELP: Permanently bans the provided hostmask on the channel. If the ban is
12 * CMDHELP: removed from the channel e.g. by a channel op or the BANTIMER feature, the
13 * CMDHELP: ban will be reapplied if a matching user joins the channel. Bans
14 * CMDHELP: set with the PERMBAN command can be removed via BANCLEAR or BANDEL. Any users
15 * CMDHELP: matching the hostmask will be kicked from the channel.
17 * CMDHELP: channel - channel to set a ban on
18 * CMDHELP: hostmask - hastmask (nick!user@host) to ban.
19 * CMDHELP: reason - reason for the ban. This will be used in kick messages when kicking
20 * CMDHELP: users matching the ban. If this is not provided the generic message
21 * CMDHELP: \"Banned.\" will be used.
22 * CMDHELP: PERMBAN requires master (+m) access on the named channel.
25 #include "../chanserv.h"
26 #include "../../nick/nick.h"
27 #include "../../lib/flags.h"
28 #include "../../lib/irc_string.h"
29 #include "../../channel/channel.h"
30 #include "../../parser/parser.h"
31 #include "../../irc/irc.h"
32 #include "../../localuser/localuserchannel.h"
36 int csc_dopermban(void *source
, int cargc
, char **cargv
) {
41 reguser
*rup
=getreguserfromnick(sender
);
44 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "permban");
48 if (!(cip
=cs_checkaccess(sender
, cargv
[0], CA_MASTERPRIV
, NULL
, "permban",0, 0)))
51 rcp
=cip
->exts
[chanservext
];
55 rbp
->cbp
=makeban(cargv
[1]);
59 rbp
->reason
=getsstring(cargv
[2],200);
65 cs_setregban(cip
, rbp
);
66 csdb_createban(rcp
, rbp
);
68 chanservstdmessage(sender
, QM_DONE
);