diff options
author | rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-07-10 18:13:03 +0000 |
---|---|---|
committer | rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2006-07-10 18:13:03 +0000 |
commit | 43e25b7d07b0c67fe7f935ffcaea88725cdbb93e (patch) | |
tree | 8130af64491a44bd49b0073861a4054b1082fe6e | |
parent | 9d4d4e7287499f820285deaf0300602f1392a26f (diff) |
Removed ns_noop from svn
git-svn-id: svn://svn.anope.org/anope/trunk@1083 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@807 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | src/modules/ns_noop.c | 556 |
1 files changed, 0 insertions, 556 deletions
diff --git a/src/modules/ns_noop.c b/src/modules/ns_noop.c deleted file mode 100644 index ee1b4a93e..000000000 --- a/src/modules/ns_noop.c +++ /dev/null @@ -1,556 +0,0 @@ -/* ns_noop.c - Allows users to optionaly set autoop to off - * - * (C) 2003-2005 Anope Team - * Contact us at info@anope.org - * - * Based on the original module by Rob <rob@anope.org> - * Included in the Anope module pack since Anope 1.7.9 - * Anope Coder: DrStein <drstein@anope.org> - * - * Please read COPYING and README for further details. - * - * Send bug reports to the Anope Coder instead of the module - * author, because any changes since the inclusion into anope - * are not supported by the original author. - * - */ -/*************************************************************************/ - -#include "module.h" - -#define AUTHOR "Rob" -#define VERSION "$Id$" - -/* The name of the default database to save info to */ -#define DEFAULT_DB_NAME "autoop.db" - -/* Multi-language stuff */ -#define LANG_NUM_STRINGS 8 - -#define AUTOOP_SYNTAX 0 -#define AUTOOP_STATUS_ON 1 -#define AUTOOP_STATUS_OFF 2 -#define AUTOOP_NO_NICK 3 -#define AUTOOP_ON 4 -#define AUTOOP_OFF 5 -#define AUTOOP_DESC 6 -#define AUTOOP_HELP 7 - -/*************************************************************************/ - -User *currentUser; -int m_isIRCop = 0; - -char *NSAutoOPDBName; - -int myNickServAutoOpHelp(User * u); -void myNickServHelp(User * u); - -int noop(User * u); -int mEventJoin(int argc, char **argv); -int setAutoOp(User * u); -int UnsetAutoOp(User * u); - -int mLoadData(void); -int mSaveData(int argc, char **argv); -int mLoadConfig(int argc, char **argv); - -void m_AddLanguages(void); -void delete_ignore(const char *nick); - -/*************************************************************************/ - -/** - * AnopeInit is called when the module is loaded - * @param argc Argument count - * @param argv Argument list - * @return MOD_CONT to allow the module, MOD_STOP to stop it - **/ -int AnopeInit(int argc, char **argv) -{ - Command *c = NULL; - EvtHook *hook = NULL; - - int status; - - NSAutoOPDBName = NULL; - - moduleAddAuthor(AUTHOR); - moduleAddVersion(VERSION); - moduleSetType(SUPPORTED); - - alog("ns_noop: Loading configuration directives"); - if (mLoadConfig(0, NULL)) - return MOD_STOP; - - c = createCommand("autoop", noop, NULL, -1, -1, -1, -1, -1); - status = moduleAddCommand(NICKSERV, c, MOD_HEAD); - - hook = createEventHook(EVENT_JOIN_CHANNEL, mEventJoin); - status = moduleAddEventHook(hook); - - hook = createEventHook(EVENT_DB_SAVING, mSaveData); - status = moduleAddEventHook(hook); - - hook = createEventHook(EVENT_RELOAD, mLoadConfig); - status = moduleAddEventHook(hook); - - moduleAddHelp(c, myNickServAutoOpHelp); - moduleSetNickHelp(myNickServHelp); - - mLoadData(); - m_AddLanguages(); - - return MOD_CONT; -} - -/** - * Unload the module - **/ -void AnopeFini(void) -{ - char *av[1]; - - av[0] = sstrdup(EVENT_START); - mSaveData(1, av); - free(av[0]); - - if (NSAutoOPDBName) - free(NSAutoOPDBName); -} - -/*************************************************************************/ - -/** - * Provide de user interface to set autoop on/off - * @param u The user who executed this command - * @return MOD_CONT - **/ -int noop(User * u) -{ - NickAlias *na = NULL; - char *toggleStr = strtok(NULL, ""); - - if (!nick_identified(u)) { - moduleNoticeLang(s_NickServ, u, AUTOOP_NO_NICK); - } else if (!toggleStr) { - if ((na = findnick(u->nick))) { - char *tmpstr = NULL; - if ((tmpstr = moduleGetData(&na->nc->moduleData, "autoop"))) { - moduleNoticeLang(s_NickServ, u, AUTOOP_STATUS_OFF); - free(tmpstr); - } else { - moduleNoticeLang(s_NickServ, u, AUTOOP_STATUS_ON); - } - } else { - moduleNoticeLang(s_NickServ, u, AUTOOP_SYNTAX); - } - } else { - if (strcasecmp(toggleStr, "on") == 0) { - setAutoOp(u); - moduleNoticeLang(s_NickServ, u, AUTOOP_ON); - } else if (strcasecmp(toggleStr, "off") == 0) { - UnsetAutoOp(u); - moduleNoticeLang(s_NickServ, u, AUTOOP_OFF); - } else { - moduleNoticeLang(s_NickServ, u, AUTOOP_SYNTAX); - } - } - return MOD_CONT; -} - -/** - * Toggle on/off the autoop feature by adding or - * deleting moduleData. - * @param u The user who executed this command - * @return 0 On success - **/ -int setAutoOp(User * u) -{ - NickAlias *na = NULL; - - if ((na = findnick(u->nick))) { - /* Remove the module data */ - moduleDelData(&na->nc->moduleData, "autoop"); - /* NickCore not found! */ - } else { - alog("ns_autoop.so: WARNING: Can not find NickAlias for %s", - u->nick); - } - - return 0; -} - -int UnsetAutoOp(User * u) -{ - NickAlias *na = NULL; - - if ((na = findnick(u->nick))) { - /* Add the module data to the user */ - moduleAddData(&na->nc->moduleData, "autoop", "off"); - /* NickCore not found! */ - } else { - alog("ns_autoop.so: WARNING: Can not find NickAlias for %s", - u->nick); - } - - return 0; -} - -/*************************************************************************/ - -/** - * Manage the JOIN_CHANNEL EVENT - * @return MOD_CONT - **/ -int mEventJoin(int argc, char **argv) -{ - User *user; - NickAlias *na = NULL; - - if (argc != 3) - return MOD_CONT; - - user = finduser(argv[1]); - /* Blame Rob if this user->na should be findnick(user->nick); -GD */ - if (user && (na = user->na)) { - if (strcmp(argv[0], EVENT_START) == 0) { - char *tmpstr = NULL; - if ((tmpstr = moduleGetData(&na->nc->moduleData, "autoop"))) { - currentUser = user; - if (is_oper(user)) { - user->mode &= ~(anope_get_oper_mode()); - m_isIRCop = 1; - } - add_ignore(user->nick, 120); - free(tmpstr); - } - } else { - char *tmpstr = NULL; - /* Does the user have the autoop info in his moduleData? */ - if ((tmpstr = moduleGetData(&na->nc->moduleData, "autoop"))) { - /* The most dirty solution ever! - doc */ - if (m_isIRCop) - user->mode |= anope_get_oper_mode(); - delete_ignore(user->nick); - free(tmpstr); - } - } - } - - return MOD_CONT; -} - -/*************************************************************************/ - -/** - * Load data from the db file, and populate the autoop setting - * @return 0 for success - **/ -int mLoadData(void) -{ - int ret = 0; - int len = 0; - - char *name = NULL; - - NickAlias *na = NULL; - FILE *in; - - /* will _never_ be this big thanks to the 512 limit of a message */ - char buffer[2000]; - if ((in = fopen(NSAutoOPDBName, "r")) == NULL) { - alog("ns_noop: WARNING: Can not open database file! (it might not exist, this is not fatal)"); - ret = 1; - } else { - while (fgets(buffer, 1500, in)) { - name = myStrGetToken(buffer, ' ', 0); - if (name) { - len = strlen(name); - /* Take the \n from the end of the line */ - name[len - 1] = '\0'; - if ((na = findnick(name))) { - moduleAddData(&na->nc->moduleData, "autoop", "off"); - } - free(name); - } - } - } - return ret; -} - -/** - * Save all our data to our db file - * First walk through the nick CORE list, and any nick core which has - * the autoop setting, write to the file. - * @return 0 for success - **/ -int mSaveData(int argc, char **argv) -{ - NickCore *nc = NULL; - int i = 0; - int ret = 0; - FILE *out; - - if (argc >= 1) { - if (stricmp(argv[0], EVENT_START) == 0) { - if ((out = fopen(NSAutoOPDBName, "w")) == NULL) { - alog("ns_noop: ERROR: can not open the database file!"); - anope_cmd_global(s_NickServ, - "ns_noop: ERROR: can not open the database file!"); - ret = 1; - } else { - for (i = 0; i < 1024; i++) { - for (nc = nclists[i]; nc; nc = nc->next) { - char *tmpstr = NULL; - /* If we have any info on this user */ - if ((tmpstr = moduleGetData(&nc->moduleData, "autoop"))) { - fprintf(out, "%s\n", nc->display); - free(tmpstr); - } - } - } - fclose(out); - } - } else { - ret = 0; - } - } - - return ret; -} - -/*************************************************************************/ - -/** - * Load the configuration directives from Services configuration file. - * @return 0 for success - **/ -int mLoadConfig(int argc, char **argv) -{ - char *tmp = NULL; - - Directive d[] = { - {"NSAutoOPDBName", {{PARAM_STRING, PARAM_RELOAD, &tmp}}}, - }; - - moduleGetConfigDirective(d); - - if (NSAutoOPDBName) - free(NSAutoOPDBName); - - if (tmp) { - NSAutoOPDBName = tmp; - } else { - NSAutoOPDBName = sstrdup(DEFAULT_DB_NAME); - alog("ns_noop: NSAutoOPDBName is not defined in Services configuration file, using default %s", NSAutoOPDBName); - } - - if (!NSAutoOPDBName) { - alog("ns_noop: FATAL: Can't read required configuration directives!"); - return MOD_STOP; - } else { - alog("ns_noop: Directive NSAutoOPDBName loaded (%s)...", - NSAutoOPDBName); - } - - return MOD_CONT; -} - -/*************************************************************************/ - -/** - * Below are the help funcitons :) - **/ -void myNickServHelp(User * u) -{ - moduleNoticeLang(s_NickServ, u, AUTOOP_DESC); -} - -int myNickServAutoOpHelp(User * u) -{ - moduleNoticeLang(s_NickServ, u, AUTOOP_SYNTAX); - moduleNoticeLang(s_NickServ, u, AUTOOP_HELP, s_ChanServ); - - return MOD_CONT; -} - -/*************************************************************************/ - -/** - * manages the multilanguage stuff - **/ -void m_AddLanguages(void) -{ - /* English (US) */ - char *langtable_en_us[] = { - /* AUTOOP_SYNTAX */ - "Syntax: AUTOOP [ON|OFF]", - /* AUTOOP_STATUS_ON */ - "Your current AUTOOP setting is ON", - /* AUTOOP_STATUS_OFF */ - "Your current AUTOOP setting is OFF", - /* AUTOOP_NO_NICK */ - "Only registered and identified nicknames can set this option", - /* AUTOOP_ON */ - "You will now be auto op'ed in channels when you join", - /* AUTOOP_OFF */ - "You will no longer be auto op'ed in channels when you join them", - /* AUTOOP_DESC */ - " AUTOOP Toggles auto-op'ing when joining channels", - /* AUTOOP_HELP */ - "When set to OFF, this command will prevent %s setting any\n" - "modes on you when you join any channel. This command requires\n" - "you to be identified." - }; - - /* Spanish */ - char *langtable_es[] = { - /* AUTOOP_SYNTAX */ - "Sintaxis: AUTOOP [ON|OFF]", - /* AUTOOP_STATUS_ON */ - "Tu configuracion actual de AUTOOP es ON", - /* AUTOOP_STATUS_OFF */ - "Tu configuracion actual de AUTOOP es OFF", - /* AUTOOP_NO_NICK */ - "Solo nicknames registrados e identificados pueden usar esta opcion", - /* AUTOOP_ON */ - "Recibiras OP automaticamente cuando entres a un canal.", - /* AUTOOP_OFF */ - "Ya no recibiras OP automaticamente.", - /* AUTOOP_DESC */ - " AUTOOP Cambia la opcion de auto-op cuando entras a un canal", - /* AUTOOP_HELP */ - "Cuando esta en OFF, evitaras que ChanServ/BotServ\n" - "cambien tus modos en el canal que tengas acceso.\n", - "(Debes estar identificado para usar esta opcion)" - }; - - /* Dutch */ - char *langtable_nl[] = { - /* AUTOOP_SYNTAX */ - "Gebruik: AUTOOP [ON|OFF]", - /* AUTOOP_STATUS_ON */ - "Je huidige AUTOOP instelling is AAN", - /* AUTOOP_STATUS_OFF */ - "Je huidige AUTOOP instelling is UIT", - /* AUTOOP_NO_NICK */ - "Alleen geregistreerd en geidentificeerde nicks kunnen deze optie gebruiken", - /* AUTOOP_ON */ - "Je zal nu kanaal-op worden in kanalen wanneer je die binnen komt", - /* AUTOOP_OFF */ - "Je zal nu geen kanaal-op meer worden in kanalen wanneer je die binnen komt", - /* AUTOOP_DESC */ - " AUTOOP Zet auto-op aan of uit", - /* AUTOOP_HELP */ - "Wanner dit UIT (OFF) staat, zal dit commando er voor zorgen dat\n" - "%s geen kanaalmodes aan jou zal geven wanneer je een\n" - "kanaal binnen komt. Voor dit command is het vereist dat je\n" - "geidentificeerd bent." - }; - - char *langtable_de[] = { - /* AUTOOP_SYNTAX */ - "Syntax: AUTOOP [ON|OFF]", - /* AUTOOP_STATUS_ON */ - "Dein aktuelle AUTOOP Einstellung ist AN (ON)", - /* AUTOOP_STATUS_OFF */ - "Dein aktuelle AUTOOP Einstellung ist AUS (OFF)", - /* AUTOOP_NO_NICK */ - "Nur registriete und identifizierte Nicknamen können die Option benutzen", - /* AUTOOP_ON */ - "Du bekommst jetzt Auto-Op wenn du ein Channel joinst", - /* AUTOOP_OFF */ - "Du wirst kein Auto-Op mehr bekommen wenn du ein Channel joinst", - /* AUTOOP_DESC */ - " AUTOOP Verwaltet dein Auto-Op wenn du Channels joinst", - /* AUTOOP_HELP */ - "Wenn die Option AUS ist (OFF), wird dir Chanserv/BotServ keine Modis\n" - "geben wenn du einen Channel joinst.Um das Befehl zu benutzen\n" - "musst du identifiziert sein." - }; - - /* Portuguese */ - char *langtable_pt[] = { - /* AUTOOP_SYNTAX */ - "Sintaxe: AUTOOP [ON|OFF]", - /* AUTOOP_STATUS_ON */ - "Sua configuração atual de AUTOOP está ATIVADA", - /* AUTOOP_STATUS_OFF */ - "Sua configuração atual de AUTOOP está DESATIVADA", - /* AUTOOP_NO_NICK */ - "Apenas nicks registrados e identificados podem alterar esta opção", - /* AUTOOP_ON */ - "Você receberá OP automaticamente ao entrar em um canal", - /* AUTOOP_OFF */ - "Você não mais receberá OP automaticamente ao entrar em um canal", - /* AUTOOP_DESC */ - " AUTOOP Ativa ou Desativa OP automático ao entrar em um canal", - /* AUTOOP_HELP */ - "Quando ajustado em OFF, este comando irá impedir que o %s ajuste\n" - "quaisquer modos em você quando entrar em algum canal. Este comando requer\n" - "que você esteja identificado." - }; - - /* Italian (IT) */ - char *langtable_it[] = { - /* AUTOOP_SYNTAX */ - "Sintassi: AUTOOP [ON|OFF]", - /* AUTOOP_STATUS_ON */ - "La tua impostazione AUTOOP è attualmente ATTIVATA", - /* AUTOOP_STATUS_OFF */ - "La tua impostazione AUTOOP è attualmente DISATTIVATA", - /* AUTOOP_NO_NICK */ - "Unicamente nicknames registrati ed identificati possono impostare questa opzione", - /* AUTOOP_ON */ - "Verrai ora oppato automaticamente nei canali quando ci entri", - /* AUTOOP_OFF */ - "Non verrai più oppato automaticamente nei canali quando ci entri", - /* AUTOOP_DESC */ - " AUTOOP Attiva o disattiva l'OP automatico quando si entra nei canali", - /* AUTOOP_HELP */ - "Se impostato su OFF, questo comando eviterà che %s imposti dei modi\n" - "su di te quando entri un canale. Questo comando richiede\n" - "che tu sia identificato." - }; - - moduleInsertLanguage(LANG_EN_US, LANG_NUM_STRINGS, langtable_en_us); - moduleInsertLanguage(LANG_ES, LANG_NUM_STRINGS, langtable_es); - moduleInsertLanguage(LANG_NL, LANG_NUM_STRINGS, langtable_nl); - moduleInsertLanguage(LANG_DE, LANG_NUM_STRINGS, langtable_de); - moduleInsertLanguage(LANG_PT, LANG_NUM_STRINGS, langtable_pt); - moduleInsertLanguage(LANG_IT, LANG_NUM_STRINGS, langtable_it); -} - -/*************************************************************************/ - -/** - * Deletes a nick from the ignore list - * @param nick nickname to unignore. - **/ -void delete_ignore(const char *nick) -{ - IgnoreData *ign, *prev; - IgnoreData **whichlist; - - if (!nick || !*nick) { - return; - } - - whichlist = &ignore[tolower(nick[0])]; - - for (ign = *whichlist, prev = NULL; ign; prev = ign, ign = ign->next) { - if (stricmp(ign->who, nick) == 0) - break; - } - if (ign) { - if (prev) - prev->next = ign->next; - else - *whichlist = ign->next; - free(ign); - ign = NULL; - } -} - -/* EOF */ |