]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/chancmds/clearchan.c
1 /* Automatically generated by refactor.pl.
5 * CMDLEVEL: QCMD_AUTHED
7 * CMDDESC: Removes all modes from a channel.
8 * CMDFUNC: csc_doclearchan
9 * CMDPROTO: int csc_doclearchan(void *source, int cargc, char **cargv);
10 * CMDHELP: Usage: CLEARCHAN <channel>
11 * CMDHELP: Removes all channel modes (such as keys, limits, invite only, etc.) from
12 * CMDHELP: the named channel. Modes being enfored (see CHANMODE) will not be removed.
14 * CMDHELP: channel - channel to remove modes from
15 * CMDHELP: CLEARCHAN requires master (+m) access on the named channel.
18 #include "../chanserv.h"
19 #include "../../nick/nick.h"
20 #include "../../lib/flags.h"
21 #include "../../lib/irc_string.h"
22 #include "../../channel/channel.h"
23 #include "../../parser/parser.h"
24 #include "../../irc/irc.h"
25 #include "../../localuser/localuserchannel.h"
29 int csc_doclearchan(void *source
, int cargc
, char **cargv
) {
35 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "clearchan");
39 if (!(cip
=cs_checkaccess(sender
, cargv
[0], CA_MASTERPRIV
, NULL
, "clearchan",0, 0)))
43 localsetmodeinit(&changes
, cip
->channel
, chanservnick
);
44 localdosetmode_key(&changes
, NULL
, MCB_DEL
);
45 localdosetmode_simple(&changes
, 0, cip
->channel
->flags
);
46 cs_docheckchanmodes(cip
->channel
, &changes
);
47 localsetmodeflush(&changes
, 1);
50 cs_log(sender
,"CLEARCHAN %s",cip
->name
->content
);
51 chanservstdmessage(sender
, QM_DONE
);