]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/config.cpp
Added capability for gameserv to identify with nickserv
[irc/gameservirc.git] / gameserv / config.cpp
index 3b5557ad308aa8909e10e10fda68d485d349d17a..ec3605e033bec55fe2d0f0815826883171964d5c 100644 (file)
@@ -23,6 +23,9 @@ char *c_ForestTopic;          // Forest Channel Topic
 char *adminpass;               // Administrator password
 char *welcomemsg;              // Welcome Message
 char *ignoreserverslist;       // Servernames to ignore
+char *nsname;                  // NickServ's name
+char *nspass;                  // GameServ's NickServ Password
+
 int welcomedelay;              // Welcome Message Delay
 int updateperiod;              // Seconds until another player database update
 int forestfights;              // Forest fights per day
@@ -81,6 +84,10 @@ void unload_config_file()
        delete [] ignoreserverslist;
     if (newsdata)
        delete [] newsdata;
+    if (nsname)
+       delete [] nsname;
+    if (nspass)
+       delete [] nspass;
 
     configflags = 0;
 }
@@ -89,7 +96,7 @@ int load_config_file(char *config)
 {
     char *buf, *directive, *value;
 
-    #define numdirectives 25
+    #define numdirectives 28
 
     unload_config_file();
 
@@ -138,6 +145,10 @@ int load_config_file(char *config)
     directives[24].desc = "DEFAULTEXPIRE - Amount of days until a "\
                        "level 2 and above player's account is "\
                        "deleted due to inactivity";
+    directives[25].desc = "USENICKSERV - True/False as to wether or not "\
+                       "GameServ should identify with NickServ";
+    directives[26].desc = "NSNAME - Your network's NickServ nickname";
+    directives[27].desc = "NSPASS - GameServ's NickServ Password";
 
     configflags = 0;
 
@@ -343,6 +354,30 @@ int load_config_file(char *config)
            defaultexpire = stringtoint(value);
            directives[24].done = true;
        }
+       else if (stricmp(directive, "USENICKSERV") == 0)
+       {
+           value = strtok(NULL, " ");
+           if (stricmp(value, "TRUE") == 0)
+           {
+               setUseNickServ();
+           }
+
+           directives[25].done = true;
+       }
+       else if (stricmp(directive, "NSNAME") == 0)
+       {
+           value = strtok(NULL, "");
+           nsname = new char[strlen(value) + 1];
+           strcpy(nsname, value);
+           directives[26].done = true;
+       }
+       else if (stricmp(directive, "NSPASS") == 0)
+       {
+           value = strtok(NULL, "");
+           nspass = new char[strlen(value) + 1];
+           strcpy(nspass, value);
+           directives[27].done = true;
+       }
        else if (stricmp(directive, "WELCOMEMSG") == 0)
        {
            // This directive is optional