]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/chancmds/unsuspendchan.c
1 /* Automatically generated by refactor.pl.
4 * CMDNAME: unsuspendchan
7 * CMDDESC: Unsuspends a channel from the bot.
8 * CMDFUNC: csc_dounsuspendchan
9 * CMDPROTO: int csc_dounsuspendchan(void *source, int cargc, char **cargv);
10 * CMDHELP: Usage: unsuspendchan <channel> <reason>
11 * CMDHELP: Unsuspends specified channel.
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_dounsuspendchan(void *source
, int cargc
, char **cargv
) {
27 reguser
*rup
=getreguserfromnick(sender
);
31 char *csuspendedby
, *csuspendedreason
;
32 char *unsuspendreason
;
38 chanservstdmessage(sender
, QM_NOTENOUGHPARAMS
, "unsuspendchan");
42 unsuspendreason
= cargv
[1];
43 if(!checkreason(sender
, unsuspendreason
))
46 if (!(cip
=findchanindex(cargv
[0])) || !(rcp
=cip
->exts
[chanservext
])) {
47 chanservstdmessage(sender
, QM_UNKNOWNCHAN
, cargv
[0]);
51 if(!CIsSuspended(rcp
)) {
52 chanservstdmessage(sender
, QM_CHANNELNOTSUSPENDED
, cip
->name
->content
);
53 cs_log(sender
,"UNSUSPENDCHAN %s is not suspended",cip
->name
->content
);
59 suspendedby
= findreguserbyID(rcp
->suspendby
);
60 csuspendedby
= suspendedby
?suspendedby
->username
:"(unknown)";
61 csuspendedreason
= rcp
->suspendreason
?rcp
->suspendreason
->content
:"(no reason)";
63 chanservwallmessage("%s (%s) used UNSUSPENDCHAN on %s (suspended by: %s, suspension reason: %s), unsuspension reason: %s", sender
->nick
, rup
->username
, cip
->name
->content
, csuspendedby
, csuspendedreason
, unsuspendreason
);
64 cs_log(sender
,"UNSUSPENDCHAN %s (suspended by: %s, suspension reason: %s), unsuspension reason: %s", cip
->name
->content
, csuspendedby
, csuspendedreason
, unsuspendreason
);
66 freesstring(rcp
->suspendreason
);
67 rcp
->suspendreason
= NULL
;
71 chanservjoinchan(cip
->channel
);
73 csdb_updatechannel(rcp
);
74 chanservstdmessage(sender
, QM_DONE
);