X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/a12bc433d82865374a2aa94b88806a5204635531..8e8005496ea89dc8d8c7ffb12c76836a4de701a4:/gameserv/config.cpp diff --git a/gameserv/config.cpp b/gameserv/config.cpp index 5e8b69c..c9f7230 100644 --- a/gameserv/config.cpp +++ b/gameserv/config.cpp @@ -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 @@ -42,7 +45,8 @@ char *remoteport; // Port to connect to on remoteserver char *remotepass; // Password for the server link char *playerdata; // File to store player data in -char *monsterdata; // File to load monster data from +char *dragondata; // File to store current dragon data in +char *masterdata; // File to store the master data in char *newsdata; // File to store news data in char *pidfile; // Process ID file @@ -72,8 +76,10 @@ void unload_config_file() delete [] remotepass; if (playerdata) delete [] playerdata; - if (monsterdata) - delete [] monsterdata; + if (dragondata) + delete [] dragondata; + if (masterdata) + delete [] masterdata; if (adminpass) delete [] adminpass; if (welcomemsg) @@ -84,6 +90,10 @@ void unload_config_file() delete [] ignoreserverslist; if (newsdata) delete [] newsdata; + if (nsname) + delete [] nsname; + if (nspass) + delete [] nspass; configflags = 0; } @@ -92,7 +102,7 @@ int load_config_file(char *config) { char *buf, *directive, *value; - #define numdirectives 26 + #define numdirectives 30 unload_config_file(); @@ -113,7 +123,8 @@ int load_config_file(char *config) directives[7].desc = "REMOTEPORT - Port on the remote server to connect to"; directives[8].desc = "REMOTEPASS - Password on the remote server"; directives[9].desc = "PLAYERDATA - File to store the player saves in"; - directives[10].desc = "MONSTERDATA - File to load the monsters from"; + directives[10].desc = "SAVEDNOTICE - True/False as to wether or not to tell the forest "\ + "channel that the player database has been saved"; directives[11].desc = "ADMINPASS - Password to identify as an admin with"; directives[12].desc = "WELCOMEDELAY - Delay (in seconds) to wait before welcoming new users to the network"; directives[13].desc = "FORESTFIGHTS - Number of forest fights players get every day"; @@ -140,10 +151,13 @@ 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 = "SAVEDNOTICE - True/False as to "\ - "whether or not the c_Forest channel "\ - "will be notified every time the player "\ - "data is saved"; + 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"; + directives[28].desc = "DRAGONDATA - File to store the current "\ + "dragon's stats in"; + directives[29].desc = "MASTERDATA - File to store the level master stats in"; configflags = 0; @@ -253,11 +267,11 @@ int load_config_file(char *config) strcpy(playerdata, value); directives[9].done = true; } - else if (stricmp(directive, "MONSTERDATA") == 0) + else if (stricmp(directive, "SAVEDNOTICE") == 0) { value = strtok(NULL, ""); - monsterdata = new char[strlen(value) + 1]; - strcpy(monsterdata, value); + if (stricmp(value, "TRUE") == 0) + setSavedNotice(); directives[10].done = true; } else if (stricmp(directive, "ADMINPASS") == 0) @@ -349,6 +363,44 @@ 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, "DRAGONDATA") == 0) + { + value = strtok(NULL, ""); + dragondata = new char[strlen(value) + 1]; + strcpy(dragondata, value); + directives[28].done = true; + } + else if (stricmp(directive, "MASTERDATA") == 0) + { + value = strtok(NULL, ""); + masterdata = new char[strlen(value) + 1]; + strcpy(masterdata, value); + directives[29].done = true; + } else if (stricmp(directive, "WELCOMEMSG") == 0) { // This directive is optional @@ -374,14 +426,6 @@ int load_config_file(char *config) ignoreserverslist = new char[strlen(value) + 1]; strcpy(ignoreserverslist, value); } - else if (stricmp(directive, "SAVEDNOTICE") == 0) - { - value = strtok(NULL, " "); - if (stricmp(value, "TRUE") == 0) - setSavedNotice(); - - directives[25].done = true; - } else { #ifdef DEBUGMODE