aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorceleron55 <celeron55@gmail.com>2013-02-20 11:34:57 -0800
committerceleron55 <celeron55@gmail.com>2013-02-20 11:34:57 -0800
commitb29834ab02b47a120616b4c807a573a851b3ccd4 (patch)
treed6eae81f201f7e0598396f567296a978aa89d0f1 /src
parentfc61c8809b9a1d47d9f117446764107a56cec956 (diff)
parent89b88917a89923b37b629557fdeb54fa0b442bb9 (diff)
downloadminetest-b29834ab02b47a120616b4c807a573a851b3ccd4.tar.gz
minetest-b29834ab02b47a120616b4c807a573a851b3ccd4.tar.bz2
minetest-b29834ab02b47a120616b4c807a573a851b3ccd4.zip
Merge pull request #500 from doserj/server_report_missing_deps
Print missing mod dependencies on server start
Diffstat (limited to 'src')
-rw-r--r--src/server.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 572ef4d82..ec8f8a5e8 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -998,17 +998,20 @@ Server::Server(
ModConfiguration modconf(m_path_world);
m_mods = modconf.getMods();
+ std::list<ModSpec> unsatisfied_mods = modconf.getUnsatisfiedMods();
// complain about mods with unsatisfied dependencies
if(!modconf.isConsistent())
{
- errorstream << "The following mods have unsatisfied dependencies: ";
- std::list<ModSpec> modlist = modconf.getUnsatisfiedMods();
- for(std::list<ModSpec>::iterator it = modlist.begin();
- it != modlist.end(); ++it)
+ for(std::list<ModSpec>::iterator it = unsatisfied_mods.begin();
+ it != unsatisfied_mods.end(); ++it)
{
- errorstream << (*it).name << " ";
+ ModSpec mod = *it;
+ errorstream << "mod \"" << mod.name << "\" has unsatisfied dependencies: ";
+ for(std::set<std::string>::iterator dep_it = mod.unsatisfied_depends.begin();
+ dep_it != mod.unsatisfied_depends.end(); ++dep_it)
+ errorstream << " \"" << *dep_it << "\"";
+ errorstream << std::endl;
}
- errorstream << std::endl;
}
Settings worldmt_settings;
@@ -1033,12 +1036,15 @@ Server::Server(
for(std::vector<ModSpec>::iterator it = m_mods.begin();
it != m_mods.end(); ++it)
load_mod_names.erase((*it).name);
+ for(std::list<ModSpec>::iterator it = unsatisfied_mods.begin();
+ it != unsatisfied_mods.end(); ++it)
+ load_mod_names.erase((*it).name);
if(!load_mod_names.empty())
{
- errorstream << "The following mods could not be found: ";
+ errorstream << "The following mods could not be found:";
for(std::set<std::string>::iterator it = load_mod_names.begin();
it != load_mod_names.end(); ++it)
- errorstream << (*it) << " ";
+ errorstream << " \"" << (*it) << "\"";
errorstream << std::endl;
}