]>
jfr.im git - irc/quakenet/newserv.git/blob - chanserv/disabledcmds/title.c
1 /* Automatically generated by refactor.pl.
5 * CMDLEVEL: QCMD_TITLES | QCMD_AUTHED
7 * CMDDESC: Lists available titles, or sets your title.
9 * CMDPROTO: int csh_dotitle(void *source, int cargc, char **cargv);
10 * CMDHELP: Usage: @UCOMMAND@ [<id>]
11 * CMDHELP: Lists available titles, or selects a title.
12 * CMDHELP: id - Title ID to select. If omitted, gives a list of
13 * CMDHELP: available titles and IDs.
16 #include "../chanserv.h"
17 #include "../../nick/nick.h"
18 #include "../../lib/flags.h"
19 #include "../../lib/irc_string.h"
20 #include "../../channel/channel.h"
21 #include "../../parser/parser.h"
22 #include "../../irc/irc.h"
23 #include "../../localuser/localuserchannel.h"
24 #include "../achievements/achievements.h"
28 int csh_dotitle(void *source
, int cargc
, char **cargv
) {
31 struct achievement_record
*arp
;
33 if ((time(NULL
) < ACHIEVEMENTS_START
) || (time(NULL
) > ACHIEVEMENTS_END
)) {
37 arp
=getachievementrec(sender
->auth
);
41 if (arp
->count32
[7] <= 1) {
42 chanservstdmessage(sender
, QM_NOTITLES
);
46 chanservstdmessage(sender
, QM_TITLEHEADER
);
49 if (arp
->count32
[7] & (1<<i
)) {
50 chanservsendmessage(sender
, "%c %2d %s", arp
->count16
[2]==i
?'*':' ', i
, titlenames
[i
]);
54 chanservstdmessage(sender
, QM_ENDOFLIST
);
59 i
=strtoul(cargv
[0],NULL
,10);
62 chanservstdmessage(sender
, QM_INVALIDTITLE
);
66 if (!(arp
->count32
[7] & (1<<i
))) {
67 chanservstdmessage(sender
, QM_INVALIDTITLE
);
71 if (arp
->count16
[2] == i
) {
72 chanservstdmessage(sender
, QM_DONE
);
76 if ((arp
->count32
[11] + 300) > time(NULL
)) {
77 chanservstdmessage(sender
, QM_TITLETOOFAST
);
81 arp
->count32
[11]=time(NULL
);
84 setusertitle(sender
->auth
, i
);
86 chanservstdmessage(sender
, QM_DONE
);