/* *MIT License * *Copyright (c) 2022 Azerothcore * *Permission is hereby granted, free of charge, to any person obtaining a copy *of this software and associated documentation files (the "Software"), to deal *in the Software without restriction, including without limitation the rights *to use, copy, modify, merge, publish, distribute, sublicense, and/or sell *copies of the Software, and to permit persons to whom the Software is *furnished to do so, subject to the following conditions: * *The above copyright notice and this permission notice shall be included in all *copies or substantial portions of the Software. * *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE *SOFTWARE. */ #include "ScriptMgr.h" #include "DBUpdater.h" inline std::vector GetDatabaseDirectories(std::string const& folderName) { std::vector directories; std::string const path = "/modules/mod-anticheat/sql/updates/" + folderName; directories.push_back(path); return directories; } class AntiCheatLoadingDBUpdates : public DatabaseScript { public: AntiCheatLoadingDBUpdates() : DatabaseScript("AntiCheatLoadingDBUpdates") {} void OnAfterDatabasesLoaded(uint32 updateFlags) override { LOG_INFO("sql.sql", "Loading anticheat updates..."); if (DBUpdater::IsEnabled(updateFlags)) { std::vector loginDatabaseDirectories = GetDatabaseDirectories("auth"); if (!loginDatabaseDirectories.empty()) { DBUpdater::Update(LoginDatabase, &loginDatabaseDirectories); } } if (DBUpdater::IsEnabled(updateFlags)) { std::vector charactersDatabaseDirectories = GetDatabaseDirectories("characters"); if (!charactersDatabaseDirectories.empty()) { DBUpdater::Update(CharacterDatabase, &charactersDatabaseDirectories); } } if (DBUpdater::IsEnabled(updateFlags)) { std::vector worldDatabaseDirectories = GetDatabaseDirectories("world"); if (!worldDatabaseDirectories.empty()) { DBUpdater::Update(WorldDatabase, &worldDatabaseDirectories); } } } }; void AddAntiCheatDBLoadingScripts() { new AntiCheatLoadingDBUpdates(); }