From 39e88ae6144a1c2a6fc7e0627a43f645112d5652 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 21 Feb 2023 18:15:20 -0500 Subject: [PATCH] Fixed #8328 --- core/src/mindustry/mod/Mods.java | 5 ++++- server/src/mindustry/server/ServerControl.java | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 3277fab470..3c4f9b5409 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -428,7 +428,7 @@ public class Mods implements Loadable{ // Add local mods Seq.with(modDirectory.list()) - .filter(f -> f.extEquals("jar") || f.extEquals("zip") || (f.isDirectory() && (f.child("mod.json").exists() || f.child("mod.hjson").exists()))) + .filter(f -> f.extEquals("jar") || f.extEquals("zip") || (f.isDirectory() && Structs.contains(metaFiles, meta -> f.child(meta).exists()))) .each(candidates::add); // Add Steam workshop mods @@ -1075,6 +1075,9 @@ public class Mods implements Loadable{ /** @return whether this mod is supported by the game version */ public boolean isSupported(){ + //no unsupported mods on servers + if(headless) return true; + if(isOutdated() || isBlacklisted()) return false; return Version.isAtLeast(meta.minGameVersion); diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java index 8ea0624670..d3473246c2 100644 --- a/server/src/mindustry/server/ServerControl.java +++ b/server/src/mindustry/server/ServerControl.java @@ -265,8 +265,17 @@ public class ServerControl implements ApplicationListener{ Core.settings.forceSave(); }, saveInterval, saveInterval); - if(!mods.list().isEmpty()){ - info("@ mods loaded.", mods.list().size); + if(!mods.orderedMods().isEmpty()){ + info("@ mods loaded.", mods.orderedMods().size); + } + + int unsupported = mods.list().count(l -> !l.enabled()); + + if(unsupported > 0){ + Log.err("There were errors loading @ mod(s):", unsupported); + for(LoadedMod mod : mods.list().select(l -> !l.enabled())){ + Log.err("- @ &ly(" + mod.state + ")", mod.meta.name); + } } toggleSocket(Config.socketInput.bool()); @@ -459,7 +468,7 @@ public class ServerControl implements ApplicationListener{ if(!mods.list().isEmpty()){ info("Mods:"); for(LoadedMod mod : mods.list()){ - info(" @ &fi@", mod.meta.displayName(), mod.meta.version); + info(" @ &fi@ " + (mod.enabled() ? "" : " &lr(" + mod.state + ")"), mod.meta.displayName(), mod.meta.version); } }else{ info("No mods found.");