diff --git a/common/eqemu_config.cpp b/common/eqemu_config.cpp index 3516f15d1..cae737e98 100644 --- a/common/eqemu_config.cpp +++ b/common/eqemu_config.cpp @@ -26,24 +26,26 @@ std::string EQEmuConfig::ConfigFile = "eqemu_config.json"; EQEmuConfig *EQEmuConfig::_config = nullptr; -void EQEmuConfig::parse_config() { - - ShortName = _root["server"]["world"].get("shortname", "").asString(); - LongName = _root["server"]["world"].get("longname", "").asString(); +void EQEmuConfig::parse_config() +{ + + ShortName = _root["server"]["world"].get("shortname", "").asString(); + LongName = _root["server"]["world"].get("longname", "").asString(); WorldAddress = _root["server"]["world"].get("address", "").asString(); LocalAddress = _root["server"]["world"].get("localaddress", "").asString(); - MaxClients = atoi(_root["server"]["world"].get("maxclients", "-1").asString().c_str()); - SharedKey = _root["server"]["world"].get("key", "").asString(); - LoginCount = 0; + MaxClients = atoi(_root["server"]["world"].get("maxclients", "-1").asString().c_str()); + SharedKey = _root["server"]["world"].get("key", "").asString(); + LoginCount = 0; if (_root["server"]["world"]["loginserver"].isObject()) { - LoginHost = _root["server"]["world"]["loginserver"].get("host", "login.eqemulator.net").asString(); - LoginPort = atoi(_root["server"]["world"]["loginserver"].get("port", "5998").asString().c_str()); + LoginHost = _root["server"]["world"]["loginserver"].get("host", "login.eqemulator.net").asString(); + LoginPort = atoi(_root["server"]["world"]["loginserver"].get("port", "5998").asString().c_str()); LoginLegacy = false; - if (_root["server"]["world"]["loginserver"].get("legacy", "0").asString() == "1") LoginLegacy = true; - LoginAccount = _root["server"]["world"]["loginserver"].get("account", "").asString(); + if (_root["server"]["world"]["loginserver"].get("legacy", "0").asString() == "1") { LoginLegacy = true; } + LoginAccount = _root["server"]["world"]["loginserver"].get("account", "").asString(); LoginPassword = _root["server"]["world"]["loginserver"].get("password", "").asString(); - } else { + } + else { char str[32]; loginlist.Clear(); do { @@ -53,74 +55,102 @@ void EQEmuConfig::parse_config() { } auto loginconfig = new LoginConfig; - loginconfig->LoginHost = _root["server"]["world"][str].get("host", "login.eqemulator.net").asString(); - loginconfig->LoginPort = atoi(_root["server"]["world"][str].get("port", "5998").asString().c_str()); - loginconfig->LoginAccount = _root["server"]["world"][str].get("account", "").asString(); + loginconfig->LoginHost = _root["server"]["world"][str].get("host", "login.eqemulator.net").asString(); + loginconfig->LoginPort = atoi(_root["server"]["world"][str].get("port", "5998").asString().c_str()); + loginconfig->LoginAccount = _root["server"]["world"][str].get("account", "").asString(); loginconfig->LoginPassword = _root["server"]["world"][str].get("password", "").asString(); loginconfig->LoginLegacy = false; - if (_root["server"]["world"][str].get("legacy", "0").asString() == "1") loginconfig->LoginLegacy = true; + if (_root["server"]["world"][str].get("legacy", "0").asString() == "1") { loginconfig->LoginLegacy = true; } loginlist.Insert(loginconfig); } while (LoginCount < 100); } - - + + // from xml converts to json as locked: "", so i default to "false". //The only way to enable locked is by switching to true, meaning this value is always false until manually set true Locked = false; - if (_root["server"]["world"].get("locked", "false").asString() == "true") Locked = true; - WorldIP = _root["server"]["world"]["tcp"].get("host", "127.0.0.1").asString(); + if (_root["server"]["world"].get("locked", "false").asString() == "true") { Locked = true; } + WorldIP = _root["server"]["world"]["tcp"].get("host", "127.0.0.1").asString(); WorldTCPPort = atoi(_root["server"]["world"]["tcp"].get("port", "9000").asString().c_str()); - - TelnetIP = _root["server"]["world"]["telnet"].get("ip", "127.0.0.1").asString(); + + TelnetIP = _root["server"]["world"]["telnet"].get("ip", "127.0.0.1").asString(); TelnetTCPPort = atoi(_root["server"]["world"]["telnet"].get("port", "9001").asString().c_str()); TelnetEnabled = false; - if (_root["server"]["world"]["telnet"].get("enabled", "false").asString() == "true") TelnetEnabled = true; + if (_root["server"]["world"]["telnet"].get("enabled", "false").asString() == "true") { TelnetEnabled = true; } WorldHTTPMimeFile = _root["server"]["world"]["http"].get("mimefile", "mime.types").asString(); - WorldHTTPPort = atoi(_root["server"]["world"]["http"].get("port", "9080").asString().c_str()); - WorldHTTPEnabled = false; - if (_root["server"]["world"]["http"].get("enabled", "false").asString() == "true") WorldHTTPEnabled = true; + WorldHTTPPort = atoi(_root["server"]["world"]["http"].get("port", "9080").asString().c_str()); + WorldHTTPEnabled = false; + if (_root["server"]["world"]["http"].get("enabled", "false").asString() == "true") { + WorldHTTPEnabled = true; + } + + /** + * UCS + */ ChatHost = _root["server"]["chatserver"].get("host", "eqchat.eqemulator.net").asString(); ChatPort = atoi(_root["server"]["chatserver"].get("port", "7778").asString().c_str()); - MailHost = _root["server"]["mailserver"].get("host", "eqmail.eqemulator.net").asString(); MailPort = atoi(_root["server"]["mailserver"].get("port", "7778").asString().c_str()); + /** + * Database + */ DatabaseUsername = _root["server"]["database"].get("username", "eq").asString(); DatabasePassword = _root["server"]["database"].get("password", "eq").asString(); - DatabaseHost = _root["server"]["database"].get("host", "localhost").asString(); - DatabasePort = atoi(_root["server"]["database"].get("port", "3306").asString().c_str()); - DatabaseDB = _root["server"]["database"].get("db", "eq").asString(); + DatabaseHost = _root["server"]["database"].get("host", "localhost").asString(); + DatabasePort = atoi(_root["server"]["database"].get("port", "3306").asString().c_str()); + DatabaseDB = _root["server"]["database"].get("db", "eq").asString(); - QSDatabaseHost = _root["server"]["qsdatabase"].get("host", "localhost").asString(); - QSDatabasePort = atoi(_root["server"]["qsdatabase"].get("port", "3306").asString().c_str()); + /** + * QS + */ + QSDatabaseHost = _root["server"]["qsdatabase"].get("host", "localhost").asString(); + QSDatabasePort = atoi(_root["server"]["qsdatabase"].get("port", "3306").asString().c_str()); QSDatabaseUsername = _root["server"]["qsdatabase"].get("username", "eq").asString(); QSDatabasePassword = _root["server"]["qsdatabase"].get("password", "eq").asString(); - QSDatabaseDB = _root["server"]["qsdatabase"].get("db", "eq").asString(); + QSDatabaseDB = _root["server"]["qsdatabase"].get("db", "eq").asString(); + /** + * Zones + */ DefaultStatus = atoi(_root["server"]["zones"].get("defaultstatus", 0).asString().c_str()); - ZonePortLow = atoi(_root["server"]["zones"]["ports"].get("low", "7000").asString().c_str()); - ZonePortHigh = atoi(_root["server"]["zones"]["ports"].get("high", "7999").asString().c_str()); + ZonePortLow = atoi(_root["server"]["zones"]["ports"].get("low", "7000").asString().c_str()); + ZonePortHigh = atoi(_root["server"]["zones"]["ports"].get("high", "7999").asString().c_str()); - SpellsFile = _root["server"]["files"].get("spells", "spells_us.txt").asString(); - OpCodesFile = _root["server"]["files"].get("opcodes", "opcodes.conf").asString(); - PluginPlFile = _root["server"]["files"].get("plugin.pl", "plugin.pl").asString(); + /** + * Files + */ + SpellsFile = _root["server"]["files"].get("spells", "spells_us.txt").asString(); + OpCodesFile = _root["server"]["files"].get("opcodes", "opcodes.conf").asString(); + MailOpCodesFile = _root["server"]["files"].get("mail_opcodes", "mail_opcodes.conf").asString(); + PluginPlFile = _root["server"]["files"].get("plugin.pl", "plugin.pl").asString(); - MapDir = _root["server"]["directories"].get("maps", "Maps/").asString(); - QuestDir = _root["server"]["directories"].get("quests", "quests/").asString(); - PluginDir = _root["server"]["directories"].get("plugins", "plugins/").asString(); + /** + * Directories + */ + MapDir = _root["server"]["directories"].get("maps", "Maps/").asString(); + QuestDir = _root["server"]["directories"].get("quests", "quests/").asString(); + PluginDir = _root["server"]["directories"].get("plugins", "plugins/").asString(); LuaModuleDir = _root["server"]["directories"].get("lua_modules", "lua_modules/").asString(); - PatchDir = _root["server"]["directories"].get("patches", "./").asString(); + PatchDir = _root["server"]["directories"].get("patches", "./").asString(); SharedMemDir = _root["server"]["directories"].get("shared_memory", "shared/").asString(); - LogDir = _root["server"]["directories"].get("logs", "logs/").asString(); + LogDir = _root["server"]["directories"].get("logs", "logs/").asString(); + /** + * Logs + */ LogPrefix = _root["server"]["launcher"].get("logprefix", "logs/zone-").asString(); LogSuffix = _root["server"]["launcher"].get("logsuffix", ".log").asString(); - RestartWait = atoi(_root["server"]["launcher"]["timers"].get("restart", "10000").asString().c_str()); - TerminateWait = atoi(_root["server"]["launcher"]["timers"].get("reterminate", "10000").asString().c_str()); - InitialBootWait = atoi(_root["server"]["launcher"]["timers"].get("initial", "20000").asString().c_str()); + + /** + * Launcher + */ + RestartWait = atoi(_root["server"]["launcher"]["timers"].get("restart", "10000").asString().c_str()); + TerminateWait = atoi(_root["server"]["launcher"]["timers"].get("reterminate", "10000").asString().c_str()); + InitialBootWait = atoi(_root["server"]["launcher"]["timers"].get("initial", "20000").asString().c_str()); ZoneBootInterval = atoi(_root["server"]["launcher"]["timers"].get("interval", "2000").asString().c_str()); #ifdef WIN32 ZoneExe = _root["server"]["launcher"].get("exe", "zone.exe").asString(); @@ -230,6 +260,9 @@ std::string EQEmuConfig::GetByName(const std::string &var_name) const if (var_name == "OpCodesFile") { return (OpCodesFile); } + if (var_name == "MailOpCodesFile") { + return (MailOpCodesFile); + } if (var_name == "PluginPlFile") { return (PluginPlFile); } @@ -312,6 +345,7 @@ void EQEmuConfig::Dump() const std::cout << "QSDatabasePort = " << QSDatabasePort << std::endl; std::cout << "SpellsFile = " << SpellsFile << std::endl; std::cout << "OpCodesFile = " << OpCodesFile << std::endl; + std::cout << "MailOpcodesFile = " << MailOpCodesFile << std::endl; std::cout << "PluginPlFile = " << PluginPlFile << std::endl; std::cout << "MapDir = " << MapDir << std::endl; std::cout << "QuestDir = " << QuestDir << std::endl; @@ -322,6 +356,6 @@ void EQEmuConfig::Dump() const std::cout << "LogDir = " << LogDir << std::endl; std::cout << "ZonePortLow = " << ZonePortLow << std::endl; std::cout << "ZonePortHigh = " << ZonePortHigh << std::endl; - std::cout << "DefaultStatus = " << (int)DefaultStatus << std::endl; + std::cout << "DefaultStatus = " << (int) DefaultStatus << std::endl; // std::cout << "DynamicCount = " << DynamicCount << std::endl; } diff --git a/common/eqemu_config.h b/common/eqemu_config.h index 66cf962c6..e75737d76 100644 --- a/common/eqemu_config.h +++ b/common/eqemu_config.h @@ -84,6 +84,7 @@ class EQEmuConfig // From std::string SpellsFile; std::string OpCodesFile; + std::string MailOpCodesFile; std::string PluginPlFile; // From diff --git a/common/opcodemgr.cpp b/common/opcodemgr.cpp index f7a6ad3bf..2190db4a7 100644 --- a/common/opcodemgr.cpp +++ b/common/opcodemgr.cpp @@ -16,6 +16,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "eqemu_logsys.h" #include "emu_opcodes.h" #include "opcodemgr.h" @@ -31,7 +32,7 @@ OpcodeManager::OpcodeManager() { bool OpcodeManager::LoadOpcodesFile(const char *filename, OpcodeSetStrategy *s, bool report_errors) { FILE *opf = fopen(filename, "r"); if(opf == nullptr) { - fprintf(stderr, "Unable to open opcodes file '%s'. Thats bad.\n", filename); + Log(Logs::General, Logs::Error, "Unable to open opcodes file '%s'", filename); return(false); } diff --git a/ucs/clientlist.cpp b/ucs/clientlist.cpp index a399485e4..ab058438c 100644 --- a/ucs/clientlist.cpp +++ b/ucs/clientlist.cpp @@ -465,6 +465,7 @@ static void ProcessCommandIgnore(Client *c, std::string Ignoree) { safe_delete(outapp); } + Clientlist::Clientlist(int ChatPort) { EQ::Net::EQStreamManagerOptions chat_opts(ChatPort, false, false); chat_opts.opcode_size = 1; @@ -478,7 +479,7 @@ Clientlist::Clientlist(int ChatPort) { ChatOpMgr = new RegularOpcodeManager; - if (!ChatOpMgr->LoadOpcodes("mail_opcodes.conf")) + if (!ChatOpMgr->LoadOpcodes(Config->MailOpCodesFile)) exit(1); chatsf->OnNewConnection([this](std::shared_ptr stream) {