diff --git a/config.lua.dist b/config.lua.dist index bd852dd51e..4ac9423ca3 100644 --- a/config.lua.dist +++ b/config.lua.dist @@ -26,7 +26,6 @@ loginProtocolPort = 7171 gameProtocolPort = 7172 statusProtocolPort = 7171 maxPlayers = 0 -motd = "Welcome to The Forgotten Server!" onePlayerOnlinePerAccount = true allowClones = false allowWalkthrough = true diff --git a/data/migrations/32.lua b/data/migrations/32.lua index d0ffd9c0cb..68b5d57dcb 100644 --- a/data/migrations/32.lua +++ b/data/migrations/32.lua @@ -1,3 +1,6 @@ function onUpdateDatabase() - return false + print("> Updating database to version 32 (removed MOTD)") + db.query("DELETE FROM `server_config` WHERE `config` = 'motd_num'") + db.query("DELETE FROM `server_config` WHERE `config` = 'motd_hash'") + return true end diff --git a/data/migrations/33.lua b/data/migrations/33.lua new file mode 100644 index 0000000000..d0ffd9c0cb --- /dev/null +++ b/data/migrations/33.lua @@ -0,0 +1,3 @@ +function onUpdateDatabase() + return false +end diff --git a/schema.sql b/schema.sql index 8b6ae02255..718dc6b89d 100644 --- a/schema.sql +++ b/schema.sql @@ -362,7 +362,7 @@ CREATE TABLE IF NOT EXISTS `towns` ( UNIQUE KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; -INSERT INTO `server_config` (`config`, `value`) VALUES ('db_version', '31'), ('motd_hash', ''), ('motd_num', '0'), ('players_record', '0'); +INSERT INTO `server_config` (`config`, `value`) VALUES ('db_version', '32'), ('players_record', '0'); DROP TRIGGER IF EXISTS `ondelete_players`; DROP TRIGGER IF EXISTS `oncreate_guilds`; diff --git a/src/configmanager.cpp b/src/configmanager.cpp index b43eb97e9a..78654eba05 100644 --- a/src/configmanager.cpp +++ b/src/configmanager.cpp @@ -238,7 +238,6 @@ bool ConfigManager::load() string[OWNER_EMAIL] = getGlobalString(L, "ownerEmail", ""); string[URL] = getGlobalString(L, "url", ""); string[LOCATION] = getGlobalString(L, "location", ""); - string[MOTD] = getGlobalString(L, "motd", ""); string[WORLD_TYPE] = getGlobalString(L, "worldType", "pvp"); integer[MAX_PLAYERS] = getGlobalNumber(L, "maxPlayers"); @@ -292,15 +291,6 @@ bool ConfigManager::load() return true; } -bool ConfigManager::reload() -{ - bool result = load(); - if (transformToSHA1(getString(ConfigManager::MOTD)) != g_game.getMotdHash()) { - g_game.incrementMotdNum(); - } - return result; -} - static std::string dummyStr; const std::string& ConfigManager::getString(string_config_t what) const diff --git a/src/configmanager.h b/src/configmanager.h index a4bb31db01..10956e741e 100644 --- a/src/configmanager.h +++ b/src/configmanager.h @@ -63,7 +63,6 @@ class ConfigManager URL, LOCATION, IP, - MOTD, WORLD_TYPE, MYSQL_HOST, MYSQL_USER, @@ -124,7 +123,6 @@ class ConfigManager }; bool load(); - bool reload(); const std::string& getString(string_config_t what) const; int32_t getNumber(integer_config_t what) const; diff --git a/src/game.cpp b/src/game.cpp index b756a7b7b6..4a0bb56005 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -115,7 +115,6 @@ void Game::setGameState(GameState_t newState) quests.loadFromXml(); mounts.loadFromXml(); - loadMotdNum(); loadPlayersRecord(); loadAccountStorageValues(); @@ -133,7 +132,6 @@ void Game::setGameState(GameState_t newState) it = players.begin(); } - saveMotdNum(); saveGameState(); g_dispatcher.addTask( @@ -4796,35 +4794,6 @@ void Game::updatePlayerShield(Player* player) } } -void Game::loadMotdNum() -{ - Database& db = Database::getInstance(); - - DBResult_ptr result = db.storeQuery("SELECT `value` FROM `server_config` WHERE `config` = 'motd_num'"); - if (result) { - motdNum = result->getNumber("value"); - } else { - db.executeQuery("INSERT INTO `server_config` (`config`, `value`) VALUES ('motd_num', '0')"); - } - - result = db.storeQuery("SELECT `value` FROM `server_config` WHERE `config` = 'motd_hash'"); - if (result) { - motdHash = result->getString("value"); - if (motdHash != transformToSHA1(g_config.getString(ConfigManager::MOTD))) { - ++motdNum; - } - } else { - db.executeQuery("INSERT INTO `server_config` (`config`, `value`) VALUES ('motd_hash', '')"); - } -} - -void Game::saveMotdNum() const -{ - Database& db = Database::getInstance(); - db.executeQuery(fmt::format("UPDATE `server_config` SET `value` = '{:d}' WHERE `config` = 'motd_num'", motdNum)); - db.executeQuery(fmt::format("UPDATE `server_config` SET `value` = '{:s}' WHERE `config` = 'motd_hash'", transformToSHA1(g_config.getString(ConfigManager::MOTD)))); -} - void Game::checkPlayersRecord() { const size_t playersOnline = getPlayersOnline(); @@ -5743,7 +5712,7 @@ bool Game::reload(ReloadTypes_t reloadType) switch (reloadType) { case RELOAD_TYPE_ACTIONS: return g_actions->reload(); case RELOAD_TYPE_CHAT: return g_chat->load(); - case RELOAD_TYPE_CONFIG: return g_config.reload(); + case RELOAD_TYPE_CONFIG: return g_config.load(); case RELOAD_TYPE_CREATURESCRIPTS: { g_creatureEvents->reload(); g_creatureEvents->removeInvalidEvents(); @@ -5817,7 +5786,7 @@ bool Game::reload(ReloadTypes_t reloadType) } g_actions->reload(); - g_config.reload(); + g_config.load(); g_creatureEvents->reload(); g_monsters.reload(); g_moveEvents->reload(); diff --git a/src/game.h b/src/game.h index 06add57805..0492c10b1e 100644 --- a/src/game.h +++ b/src/game.h @@ -458,12 +458,6 @@ class Game int16_t getWorldTime() { return worldTime; } void updateWorldTime(); - void loadMotdNum(); - void saveMotdNum() const; - const std::string& getMotdHash() const { return motdHash; } - uint32_t getMotdNum() const { return motdNum; } - void incrementMotdNum() { motdNum++; } - void sendOfflineTrainingDialog(Player* player); const std::unordered_map& getPlayers() const { return players; } @@ -584,9 +578,6 @@ class Game void updatePlayersRecord() const; uint32_t playersRecord = 0; - std::string motdHash; - uint32_t motdNum = 0; - uint32_t lastStageLevel = 0; bool stagesEnabled = false; bool useLastStageLevel = false; diff --git a/src/luascript.cpp b/src/luascript.cpp index dc45715f12..9e0ea807a4 100644 --- a/src/luascript.cpp +++ b/src/luascript.cpp @@ -2111,7 +2111,6 @@ void LuaScriptInterface::registerFunctions() registerEnumIn("configKeys", ConfigManager::URL) registerEnumIn("configKeys", ConfigManager::LOCATION) registerEnumIn("configKeys", ConfigManager::IP) - registerEnumIn("configKeys", ConfigManager::MOTD) registerEnumIn("configKeys", ConfigManager::WORLD_TYPE) registerEnumIn("configKeys", ConfigManager::MYSQL_HOST) registerEnumIn("configKeys", ConfigManager::MYSQL_USER) @@ -12858,7 +12857,7 @@ int LuaScriptInterface::luaItemTypeGetAbilities(lua_State* L) lua_rawseti(L, -2, i + 1); } lua_setfield(L, -2, "specialMagicLevel"); - + // Damage boost percent lua_createtable(L, 0, COMBAT_COUNT); for (int32_t i = 0; i < COMBAT_COUNT; i++) { diff --git a/src/protocollogin.cpp b/src/protocollogin.cpp index 723e842e0b..039f71e6a9 100644 --- a/src/protocollogin.cpp +++ b/src/protocollogin.cpp @@ -49,13 +49,6 @@ void ProtocolLogin::getCharacterList(const std::string& accountName, const std:: output->addByte(0); } - const std::string& motd = g_config.getString(ConfigManager::MOTD); - if (!motd.empty()) { - //Add MOTD - output->addByte(0x14); - output->addString(fmt::format("{:d}\n{:s}", g_game.getMotdNum(), motd)); - } - //Add session key output->addByte(0x28); output->addString(accountName + "\n" + password + "\n" + token + "\n" + std::to_string(ticks)); diff --git a/src/protocolstatus.cpp b/src/protocolstatus.cpp index 2422108e75..c9bb015cda 100644 --- a/src/protocolstatus.cpp +++ b/src/protocolstatus.cpp @@ -130,7 +130,7 @@ void ProtocolStatus::sendStatusString() map.append_attribute("height") = std::to_string(mapHeight).c_str(); pugi::xml_node motd = tsqp.append_child("motd"); - motd.text() = g_config.getString(ConfigManager::MOTD).c_str(); + motd.text() = "N/A"; std::ostringstream ss; doc.save(ss, "", pugi::format_raw); @@ -160,7 +160,7 @@ void ProtocolStatus::sendInfo(uint16_t requestedInfo, const std::string& charact if (requestedInfo & REQUEST_MISC_SERVER_INFO) { output->addByte(0x12); - output->addString(g_config.getString(ConfigManager::MOTD)); + output->addString("N/A"); //MOTD output->addString(g_config.getString(ConfigManager::LOCATION)); output->addString(g_config.getString(ConfigManager::URL)); output->add((OTSYS_TIME() - ProtocolStatus::start) / 1000); diff --git a/src/signals.cpp b/src/signals.cpp index 9ebee66294..295790933a 100644 --- a/src/signals.cpp +++ b/src/signals.cpp @@ -61,7 +61,7 @@ void sighupHandler() g_actions->reload(); std::cout << "Reloaded actions." << std::endl; - g_config.reload(); + g_config.load(); std::cout << "Reloaded config." << std::endl; g_creatureEvents->reload();