diff --git a/data/sql/updates/pending_db_auth/rev_1739664850515709200.sql b/data/sql/updates/pending_db_auth/rev_1739664850515709200.sql new file mode 100644 index 000000000..17f145d81 --- /dev/null +++ b/data/sql/updates/pending_db_auth/rev_1739664850515709200.sql @@ -0,0 +1,10 @@ +-- +ALTER TABLE `updates` + CHANGE COLUMN `state` `state` ENUM('RELEASED','CUSTOM','MODULE','ARCHIVED','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if an update is released or archived.' COLLATE 'utf8mb4_unicode_ci' AFTER `hash`; + +ALTER TABLE `updates_include` + CHANGE COLUMN `state` `state` ENUM('RELEASED','ARCHIVED','CUSTOM','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if the directory contains released or archived updates.' COLLATE 'utf8mb4_unicode_ci' AFTER `path`; + +DELETE FROM `updates_include` WHERE `path` = '$/data/sql/updates/pending_db_auth'; +INSERT INTO `updates_include` (`path`, `state`) VALUES +('$/data/sql/updates/pending_db_auth', 'PENDING'); diff --git a/data/sql/updates/pending_db_characters/rev_1739664807403132000.sql b/data/sql/updates/pending_db_characters/rev_1739664807403132000.sql new file mode 100644 index 000000000..249070e21 --- /dev/null +++ b/data/sql/updates/pending_db_characters/rev_1739664807403132000.sql @@ -0,0 +1,10 @@ +-- +ALTER TABLE `updates` + CHANGE COLUMN `state` `state` ENUM('RELEASED','CUSTOM','MODULE','ARCHIVED','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if an update is released or archived.' COLLATE 'utf8mb4_unicode_ci' AFTER `hash`; + +ALTER TABLE `updates_include` + CHANGE COLUMN `state` `state` ENUM('RELEASED','ARCHIVED','CUSTOM','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if the directory contains released or archived updates.' COLLATE 'utf8mb4_unicode_ci' AFTER `path`; + +DELETE FROM `updates_include` WHERE `path` = '$/data/sql/updates/pending_db_characters'; +INSERT INTO `updates_include` (`path`, `state`) VALUES +('$/data/sql/updates/pending_db_characters', 'PENDING'); diff --git a/data/sql/updates/pending_db_world/rev_1739663978360122100.sql b/data/sql/updates/pending_db_world/rev_1739663978360122100.sql new file mode 100644 index 000000000..5e2f9c5c8 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1739663978360122100.sql @@ -0,0 +1,10 @@ +-- +ALTER TABLE `updates` + CHANGE COLUMN `state` `state` ENUM('RELEASED','CUSTOM','MODULE','ARCHIVED','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if an update is released or archived.' COLLATE 'utf8mb4_unicode_ci' AFTER `hash`; + +ALTER TABLE `updates_include` + CHANGE COLUMN `state` `state` ENUM('RELEASED','ARCHIVED','CUSTOM','PENDING') NOT NULL DEFAULT 'RELEASED' COMMENT 'defines if the directory contains released or archived updates.' COLLATE 'utf8mb4_unicode_ci' AFTER `path`; + +DELETE FROM `updates_include` WHERE `path` = '$/data/sql/updates/pending_db_world'; +INSERT INTO `updates_include` (`path`, `state`) VALUES +('$/data/sql/updates/pending_db_world', 'PENDING'); diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 4e32c5807..d0597bfc2 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -291,7 +291,7 @@ FlashAtStart = 1 # DATABASE_CHARACTER = 2, // Character database # DATABASE_WORLD = 4, // World database # -# Default: 7 - (All enabled) +# Default: 7 - (All enabled) # 4 - (Enable world only) # 0 - (All disabled) diff --git a/src/server/database/Updater/UpdateFetcher.cpp b/src/server/database/Updater/UpdateFetcher.cpp index 79e288d1e..67d7e393e 100644 --- a/src/server/database/Updater/UpdateFetcher.cpp +++ b/src/server/database/Updater/UpdateFetcher.cpp @@ -157,9 +157,7 @@ UpdateFetcher::DirectoryStorage UpdateFetcher::ReceiveIncludedDirectories() cons std::vector moduleList; for (auto const& itr : Acore::Tokenize(_modulesList, ',', true)) - { moduleList.emplace_back(itr); - } // data/sql for (auto const& itr : moduleList) @@ -168,9 +166,7 @@ UpdateFetcher::DirectoryStorage UpdateFetcher::ReceiveIncludedDirectories() cons Path const p(path); if (!is_directory(p)) - { continue; - } DirectoryEntry const entry = { p, AppliedFileEntry::StateConvert("MODULE") }; directories.push_back(entry); @@ -386,14 +382,14 @@ UpdateResult UpdateFetcher::Update(bool const redundancyChecks, // Apply default updates for (auto const& availableQuery : available) { - if (availableQuery.second != CUSTOM && availableQuery.second != MODULE) + if (availableQuery.second != PENDING && availableQuery.second != CUSTOM && availableQuery.second != MODULE) ApplyUpdateFile(availableQuery); } - // Apply only custom/module updates + // Apply only pending/custom/module updates for (auto const& availableQuery : available) { - if (availableQuery.second == CUSTOM || availableQuery.second == MODULE) + if (availableQuery.second == PENDING || availableQuery.second == CUSTOM || availableQuery.second == MODULE) ApplyUpdateFile(availableQuery); } diff --git a/src/server/database/Updater/UpdateFetcher.h b/src/server/database/Updater/UpdateFetcher.h index ca7d8c2d8..2f9027bdb 100644 --- a/src/server/database/Updater/UpdateFetcher.h +++ b/src/server/database/Updater/UpdateFetcher.h @@ -72,6 +72,7 @@ private: { RELEASED, CUSTOM, + PENDING, MODULE, ARCHIVED }; @@ -92,6 +93,8 @@ private: return RELEASED; else if (state == "CUSTOM") return CUSTOM; + else if (state == "PENDING") + return PENDING; else if (state == "MODULE") return MODULE; @@ -106,6 +109,8 @@ private: return "RELEASED"; case CUSTOM: return "CUSTOM"; + case PENDING: + return "PENDING"; case MODULE: return "MODULE"; case ARCHIVED: