1 /* Automatically generated by refactor.pl.
7 * CMDDESC: Suspends a channel from the bot.
8 * CMDFUNC: csc_dosuspendchan
9 * CMDPROTO: int csc_dosuspendchan(void *source, int cargc, char **cargv);
10 * CMDHELP: Usage: suspendchan <channel> [<reason>]
11 * CMDHELP: Suspends the specified channel, with an optional reason.
14 #include "../chanserv.h"
15 #include "../../nick/nick.h"
16 #include "../../lib/flags.h"
17 #include "../../lib/irc_string.h"
18 #include "../../channel/channel.h"
19 #include "../../parser/parser.h"
20 #include "../../irc/irc.h"
21 #include "../../localuser/localuserchannel.h"
25 int csc_dosuspendchan(void *source
, int cargc
, char **cargv
) {
27 reguser
*rup
=getreguserfromnick(sender
);
35 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "suspendchan");
39 if(!checkreason(sender
, cargv
[1]))
42 if (!(cip
=findchanindex(cargv
[0])) || !(rcp
=cip
->exts
[chanservext
])) {
43 chanservstdmessage(sender
, QM_UNKNOWNCHAN
, cargv
[0]);
47 if (CIsSuspended(rcp
)) {
48 chanservstdmessage(sender
, QM_CHANNELALREADYSUSPENDED
, cip
->name
->content
);
53 rcp
->suspendreason
= getsstring(cargv
[1], 250);
54 rcp
->suspendby
= rup
->ID
;
55 rcp
->suspendtime
= time(NULL
);
57 chanservwallmessage("%s (%s) used SUSPENDCHAN on %s (reason: %s)", sender
->nick
, rup
->username
, cip
->name
->content
, rcp
->suspendreason
->content
);
59 cs_log(sender
,"SUSPENDCHAN %s (%s)",cip
->name
->content
,rcp
->suspendreason
->content
);
63 snprintf(reasonbuf
,511,"Channel suspended: %s",rcp
->suspendreason
->content
);
66 chanservpartchan(cip
->channel
, reasonbuf
);
69 csdb_updatechannel(rcp
);
70 chanservstdmessage(sender
, QM_DONE
);