From 6c184947c3886ce80aa9eb9807a700025a344442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot?= Date: Fri, 16 Mar 2018 08:41:33 +0100 Subject: Server: delegate mod management & config to ServerModConfiguration (#7131) * Server: delegate mod management & config to ServerModConfiguration (rename it to ServerModManager) * Use c++11 range based loops * Add unittests + experimental/default mod as a test case to permit testing mod loading in future tests --- src/server/mods.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/server/mods.h (limited to 'src/server/mods.h') diff --git a/src/server/mods.h b/src/server/mods.h new file mode 100644 index 000000000..9e4b23f30 --- /dev/null +++ b/src/server/mods.h @@ -0,0 +1,43 @@ +/* +Minetest +Copyright (C) 2018 nerzhul, Loic Blot + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#pragma once + +#include "../mods.h" + +class ServerScripting; + +/** + * Manage server mods + * + * All new calls to this class must be tested in test_servermodmanager.cpp + */ +class ServerModManager : public ModConfiguration +{ +public: + /** + * Creates a ServerModManager which targets worldpath + * @param worldpath + */ + ServerModManager(const std::string &worldpath); + void loadMods(ServerScripting *script); + const ModSpec *getModSpec(const std::string &modname) const; + void getModNames(std::vector &modlist) const; + void getModsMediaPaths(std::vector &paths) const; +}; -- cgit v1.2.3