Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "module.h"
00016
00017 static int do_getkey(User * u);
00018 static void myChanServHelp(User * u);
00019
00026 int AnopeInit(int argc, char **argv)
00027 {
00028 Command *c;
00029
00030 moduleAddAuthor("Anope");
00031 moduleAddVersion(VERSION_STRING);
00032 moduleSetType(CORE);
00033
00034 c = createCommand("GETKEY", do_getkey, NULL, CHAN_HELP_GETKEY, -1, -1,
00035 -1, -1);
00036 moduleAddCommand(CHANSERV, c, MOD_UNIQUE);
00037
00038 moduleSetChanHelp(myChanServHelp);
00039
00040 return MOD_CONT;
00041 }
00042
00046 void AnopeFini(void)
00047 {
00048
00049 }
00050
00051
00052
00057 static void myChanServHelp(User * u)
00058 {
00059 notice_lang(s_ChanServ, u, CHAN_HELP_CMD_GETKEY);
00060 }
00061
00067 static int do_getkey(User * u)
00068 {
00069 char *chan = strtok(NULL, " ");
00070 ChannelInfo *ci;
00071
00072 if (!chan) {
00073 syntax_error(s_ChanServ, u, "GETKEY", CHAN_GETKEY_SYNTAX);
00074 } else if (!(ci = cs_findchan(chan))) {
00075 notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
00076 } else if (ci->flags & CI_VERBOTEN) {
00077 notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan);
00078 } else if (!check_access(u, ci, CA_GETKEY)) {
00079 notice_lang(s_ChanServ, u, ACCESS_DENIED);
00080 } else if (!ci->c || !ci->c->key) {
00081 notice_lang(s_ChanServ, u, CHAN_GETKEY_NOKEY, chan);
00082 } else {
00083 alog("%s: %s!%s@%s used GETKEY on %s",
00084 s_ChanServ, u->nick, u->username, u->host, ci->name);
00085 notice_lang(s_ChanServ, u, CHAN_GETKEY_KEY, chan, ci->c->key);
00086 }
00087
00088 return MOD_CONT;
00089 }