Fuzss / nightconfigfixes

A small number of workarounds for relatively common issues concerning the Night Config library.
https://www.curseforge.com/minecraft/mc-mods/night-config-fixes
Mozilla Public License 2.0
2 stars 2 forks source link

[Suggestion]: Handle forge-resource-caching.toml #8

Closed ZekerZhayard closed 1 year ago

ZekerZhayard commented 1 year ago

Suggestion (Required)

Forge has a config file called forge-resource-caching.toml between 43.1.35 and 44.0.40. If this configuration file is corrupted, the game will also crash.

java.lang.ExceptionInInitializerError: null
    at net.minecraftforge.resource.ResourceCacheManager.shouldUseCache(ResourceCacheManager.java:111) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    at net.minecraftforge.resource.PathPackResources.m_5698_(PathPackResources.java:154) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    at net.minecraftforge.resource.DelegatingPackResources.buildNamespaceMap(DelegatingPackResources.java:64) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    at net.minecraftforge.resource.DelegatingPackResources.<init>(DelegatingPackResources.java:40) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    at net.minecraftforge.client.loading.ClientModLoader.lambda$clientPackFinder$12(ClientModLoader.java:209) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.server.packs.repository.Pack.m_10430_(Pack.java:35) ~[client-1.19.2-20220805.130853-srg.jar%23157!/:?] {re:classloading}
    at net.minecraftforge.client.loading.ClientModLoader.clientPackFinder(ClientModLoader.java:208) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraftforge.client.loading.ClientModLoader.lambda$buildPackFinder$11(ClientModLoader.java:186) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.server.packs.repository.PackRepository.m_10526_(PackRepository.java:47) ~[client-1.19.2-20220805.130853-srg.jar%23157!/:?] {re:classloading}
    at net.minecraft.server.packs.repository.PackRepository.m_10506_(PackRepository.java:39) ~[client-1.19.2-20220805.130853-srg.jar%23157!/:?] {re:classloading}
    at net.minecraft.client.Minecraft.<init>(Minecraft.java:469) ~[client-1.19.2-20220805.130853-srg.jar%23157!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:gbr.mixins.json:GlowingMixin,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.main.Main.m_239872_(Main.java:176) ~[client-1.19.2-20220805.130853-srg.jar%23157!/:?] {re:classloading,pl:runtimedistcleaner:A}
    at net.minecraft.client.main.Main.main(Main.java:51) ~[client-1.19.2-20220805.130853-srg.jar%23157!/:?] {re:classloading,pl:runtimedistcleaner:A}
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}
    at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}
    at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:27) ~[fmlloader-1.19.2-43.2.0.jar%2395!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-10.0.8.jar%2382!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-10.0.8.jar%2382!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-10.0.8.jar%2382!/:?] {}
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-10.0.8.jar%2382!/:?] {}
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-10.0.8.jar%2382!/:?] {}
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-10.0.8.jar%2382!/:?] {}
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-10.0.8.jar%2382!/:?] {}
    at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) [bootstraplauncher-1.1.2.jar:?] {}
Caused by: java.lang.RuntimeException: Failed to load Force Resource Cache Configuration from D:\.minecraft\config\forge-resource-caching.toml
    at net.minecraftforge.resource.ResourceCacheManager$ResourceManagerBootCacheConfigurationHandler.createConfiguration(ResourceCacheManager.java:531) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    at net.minecraftforge.resource.ResourceCacheManager$ResourceManagerBootCacheConfigurationHandler.<init>(ResourceCacheManager.java:510) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    at net.minecraftforge.resource.ResourceCacheManager$ResourceManagerBootCacheConfigurationHandler.<clinit>(ResourceCacheManager.java:497) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    ... 26 more
Caused by: com.electronwill.nightconfig.core.io.ParsingException: Not enough data available
    at com.electronwill.nightconfig.core.io.ParsingException.notEnoughData(ParsingException.java:22) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.core.io.ReaderInput.directReadChar(ReaderInput.java:36) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.core.io.AbstractInput.readChar(AbstractInput.java:49) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.core.io.AbstractInput.readCharsUntil(AbstractInput.java:123) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.toml.TableParser.parseKey(TableParser.java:166) ~[toml-3.6.4.jar%2385!/:?] {}
    at com.electronwill.nightconfig.toml.TableParser.parseDottedKey(TableParser.java:145) ~[toml-3.6.4.jar%2385!/:?] {}
    at com.electronwill.nightconfig.toml.TableParser.parseNormal(TableParser.java:55) ~[toml-3.6.4.jar%2385!/:?] {}
    at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:44) ~[toml-3.6.4.jar%2385!/:?] {}
    at com.electronwill.nightconfig.toml.TomlParser.parse(TomlParser.java:37) ~[toml-3.6.4.jar%2385!/:?] {}
    at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:113) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:219) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.core.io.ConfigParser.parse(ConfigParser.java:202) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.core.file.WriteSyncFileConfig.load(WriteSyncFileConfig.java:73) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.core.file.AutoreloadFileConfig.load(AutoreloadFileConfig.java:41) ~[core-3.6.4.jar%2384!/:?] {}
    at com.electronwill.nightconfig.core.file.AutosaveCommentedFileConfig.load(AutosaveCommentedFileConfig.java:85) ~[core-3.6.4.jar%2384!/:?] {}
    at net.minecraftforge.resource.ResourceCacheManager$ResourceManagerBootCacheConfigurationHandler.createConfiguration(ResourceCacheManager.java:527) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    at net.minecraftforge.resource.ResourceCacheManager$ResourceManagerBootCacheConfigurationHandler.<init>(ResourceCacheManager.java:510) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    at net.minecraftforge.resource.ResourceCacheManager$ResourceManagerBootCacheConfigurationHandler.<clinit>(ResourceCacheManager.java:497) ~[forge-1.19.2-43.2.0-universal.jar%23162!/:?] {re:classloading}
    ... 26 more
Fuzss commented 1 year ago

Thanks, added in v4.0.7. Kinda surprised this was even possibly, but luckily the config is part of Forge and not FML, so core mods do apply.