]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/chancmds/banlist.c
1 /* Automatically generated by refactor.pl.
5 * CMDLEVEL: QCMD_AUTHED
7 * CMDDESC: Displays all persistent bans on a channel.
8 * CMDFUNC: csc_dobanlist
9 * CMDPROTO: int csc_dobanlist(void *source, int cargc, char **cargv);
12 #include "../chanserv.h"
13 #include "../../nick/nick.h"
14 #include "../../lib/flags.h"
15 #include "../../lib/irc_string.h"
16 #include "../../channel/channel.h"
17 #include "../../parser/parser.h"
18 #include "../../irc/irc.h"
19 #include "../../localuser/localuserchannel.h"
23 int csc_dobanlist(void *source
, int cargc
, char **cargv
) {
34 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "banlist");
38 if(!(cip
=cs_checkaccess(sender
, cargv
[0], CA_OPPRIV
, NULL
, "banlist", 0, 0)))
41 rcp
=cip
->exts
[chanservext
];
43 if (rcp
->bans
|| cip
->channel
->bans
) {
44 chanservstdmessage(sender
, QM_REGBANHEADER
, cip
->name
->content
);
45 for(rbp
=rcp
->bans
;rbp
;rbp
=rbp
->next
) {
46 rup
=findreguserbyID(rbp
->setby
);
47 chanservsendmessage(sender
," #%-2d %-29s %-18s %-15s %s",++i
,bantostring(rbp
->cbp
),
48 rbp
->expiry
?longtoduration(rbp
->expiry
-time(NULL
),0):"Permanent",
49 rup
?rup
->username
:"<unknown>",
50 rbp
->reason
?rbp
->reason
->content
:"");
52 for (cbp
=cip
->channel
->bans
;cbp
;cbp
=cbp
->next
) {
53 for (rbp
=rcp
->bans
;rbp
;rbp
=rbp
->next
) {
54 if (banequal(rbp
->cbp
, cbp
))
58 if (rcp
->banduration
) {
59 exp
=(cbp
->timeset
+ rcp
->banduration
) - time(NULL
);
63 chanservsendmessage(sender
, " #%-2d %-29s %-18s %-15s",++i
,bantostring(cbp
),
64 exp
? longtoduration(exp
,0) : "Permanent",
68 chanservstdmessage(sender
, QM_ENDOFLIST
);
70 chanservstdmessage(sender
, QM_NOBANS
, cip
->name
->content
);