diff --git a/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFileParser.java b/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFileParser.java index 9d519b5aaa..f11a42707a 100644 --- a/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFileParser.java +++ b/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFileParser.java @@ -6,6 +6,7 @@ package net.minecraftforge.fml.loading.moddiscovery; import com.electronwill.nightconfig.core.file.FileConfig; +import com.electronwill.nightconfig.core.io.ParsingException; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.mojang.logging.LogUtils; @@ -13,6 +14,7 @@ import net.minecraftforge.fml.loading.LogMarkers; import net.minecraftforge.forgespi.language.IModFileInfo; import net.minecraftforge.forgespi.locating.IModFile; import net.minecraftforge.forgespi.locating.ModFileFactory; +import net.minecraftforge.forgespi.locating.ModFileLoadingException; import org.slf4j.Logger; import java.io.IOException; @@ -22,7 +24,6 @@ import java.nio.file.Path; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; public class ModFileParser { private static final Logger LOGGER = LogUtils.getLogger(); @@ -41,10 +42,15 @@ public class ModFileParser { } final FileConfig fileConfig = FileConfig.builder(modsjson).build(); - fileConfig.load(); - fileConfig.close(); - final NightConfigWrapper configWrapper = new NightConfigWrapper(fileConfig); - return new ModFileInfo(modFile, configWrapper, configWrapper::setFile); + try { + fileConfig.load(); + fileConfig.close(); + final NightConfigWrapper configWrapper = new NightConfigWrapper(fileConfig); + return new ModFileInfo(modFile, configWrapper, configWrapper::setFile); + } catch (ParsingException e) { + LOGGER.error("Mod candidate {} contains a corrupt or misconfigured toml.", modFile.getFileName()); + throw new ModFileLoadingException("Mod candidate " + modFile.getFileName() + " contains a corrupt or misconfigured toml."); + } } protected static List getCoreMods(final ModFile modFile) {