From caecaab4aa3dc05afcd99d4c78eaf57c9327ba8d Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Thu, 1 Aug 2024 15:21:39 +0000 Subject: [PATCH] Abort server if any mods fail to load otherwise the console gets flooded with bullshit and it's 100x more difficult to fix errors --- src/loader.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/loader.cpp b/src/loader.cpp index 1c3eff0..03f10a7 100644 --- a/src/loader.cpp +++ b/src/loader.cpp @@ -113,14 +113,21 @@ void ModLoaderImpl::loadModsFromDirectory(std::string const &path) { Log::info("ModLoader", "Directory does not exist"); return; } + int errors = 0; while ((ent = readdir(dir)) != nullptr) { if (ent->d_name[0] == '.') continue; std::string fileName(ent->d_name); size_t len = fileName.length(); - loadMod(fileName); + if(loadMod(fileName) == nullptr){ + errors++; + } } closedir(dir); - Log::info("ModLoader", "Loaded %li mods", mods.size()); + Log::info("ModLoader", "Loaded %li mods", mods.size() - errors); + if(errors > 0){ + Log::error("ModLoader", "%d mods failed to load, aborting", errors); + exit(1); + } }