diff options
author | Loïc Blot <nerzhul@users.noreply.github.com> | 2018-03-16 08:41:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-16 08:41:33 +0100 |
commit | 6c184947c3886ce80aa9eb9807a700025a344442 (patch) | |
tree | a9c9cebb4b9ff2206f93ff02c00c4a801e6fa760 /src/server/mods.h | |
parent | 5e61f64ce259fe0b23cbb377b44e90a0fbc820d7 (diff) | |
download | minetest-6c184947c3886ce80aa9eb9807a700025a344442.tar.gz minetest-6c184947c3886ce80aa9eb9807a700025a344442.tar.bz2 minetest-6c184947c3886ce80aa9eb9807a700025a344442.zip |
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
Diffstat (limited to 'src/server/mods.h')
-rw-r--r-- | src/server/mods.h | 43 |
1 files changed, 43 insertions, 0 deletions
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 <loic.blot@unix-experience.fr> + +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<std::string> &modlist) const; + void getModsMediaPaths(std::vector<std::string> &paths) const; +}; |