]>
jfr.im git - irc/quakenet/newserv.git/blob - jupe/jupe_commands.c
1 #include "../control/control.h"
2 #include "../nick/nick.h"
3 #include "../channel/channel.h"
4 #include "../lib/irc_string.h"
5 #include "../irc/irc.h"
8 int ju_addjupe(void *source
, int cargc
, char **cargv
) {
9 nick
*np
= (nick
*)source
;
16 if (jupe_find(cargv
[0]) != NULL
) {
17 controlreply(np
, "There is already a jupe for that server.");
21 duration
= durationtolong(cargv
[1]);
23 if (duration
> JUPE_MAX_EXPIRE
) {
24 controlreply(np
, "A jupe's maximum duration is %s. Could not create jupe.", longtoduration(JUPE_MAX_EXPIRE
, 0));
28 result
= jupe_add(cargv
[0], cargv
[2], duration
, JUPE_ACTIVE
);
31 controlwall(NO_OPER
, NL_MISC
, "%s added JUPE for '%s' expiring in %s with reason %s", controlid(np
), cargv
[0], longtoduration(duration
, 0), cargv
[2]);
32 controlreply(np
, "Done.");
34 controlreply(np
, "Jupe could not be created.");
39 int ju_activatejupe(void *source
, int cargc
, char **cargv
) {
40 nick
*np
= (nick
*)source
;
47 jupe
= jupe_find(cargv
[0]);
50 controlreply(np
, "There is no such jupe.");
54 if (jupe
->ju_flags
& JUPE_ACTIVE
) {
55 controlreply(np
, "This jupe is already activated.");
62 controlwall(NO_OPER
, NL_MISC
, "%s reactivated JUPE for '%s'", controlid(np
), cargv
[0]);
63 controlreply(np
, "Done.");
67 int ju_deactivatejupe(void *source
, int cargc
, char **cargv
) {
68 nick
*np
= (nick
*)source
;
75 jupe
= jupe_find(cargv
[0]);
78 controlreply(np
, "There is no such jupe.");
82 if ((jupe
->ju_flags
& JUPE_ACTIVE
) == 0) {
83 controlreply(np
, "This jupe is already deactivated.");
87 jupe_deactivate(jupe
);
89 controlwall(NO_OPER
, NL_MISC
, "%s deactivated JUPE for '%s'", controlid(np
), cargv
[0]);
90 controlreply(np
, "Done.");
94 int ju_jupelist(void *source
, int cargc
, char **cargv
) {
95 nick
*np
= (nick
*)source
;
102 controlreply(np
, "Server Reason Expires Status");
105 controlreply(np
, "%s %s %s %s", JupeServer(jupe
), JupeReason(jupe
), longtoduration(jupe
->ju_expire
- getnettime(), 0), (jupe
->ju_flags
& JUPE_ACTIVE
) ? "activated" : "deactivated");
107 jupe
= jupe
->ju_next
;
110 controlreply(np
, "--- End of JUPE list.");
115 registercontrolhelpcmd("addjupe", NO_OPER
, 3, ju_addjupe
, "Usage: addjupe <servername> <duration> <reason>");
116 registercontrolhelpcmd("activatejupe", NO_OPER
, 1, ju_activatejupe
, "Usage: activatejupe <servername>");
117 registercontrolhelpcmd("deactivatejupe", NO_OPER
, 1, ju_deactivatejupe
, "Usage: deactivatejupe <servername>");
118 registercontrolhelpcmd("jupelist", NO_OPER
, 0, ju_jupelist
, "Usage: jupelist");
122 deregistercontrolcmd("addjupe", ju_addjupe
);
123 deregistercontrolcmd("activatejupe", ju_activatejupe
);
124 deregistercontrolcmd("deactivatejupe", ju_deactivatejupe
);
125 deregistercontrolcmd("jupelist", ju_jupelist
);