gigaherz / JsonThings

Data-driven minecraft
https://www.curseforge.com/minecraft/mc-mods/json-things
Other
23 stars 5 forks source link

Crashes relating to various mods #18

Open Desymoo opened 1 year ago

Desymoo commented 1 year ago

Hmmm, we've experienced a few interesting crashes when loading Json Things along with other mods on 1.18.2. I've noticed a couple similar reports of Json Things causing crashes when used with other mods so I'd like to try and provide as much info as I can, this is a really helpful utility that I'd hate to lose!

Crash Number. 1

Mods In Question:

Crash Log: crash-2023-02-20_19.24.22-client.txt

Thread: Render thread
Stacktrace:
    at java.util.HashMap.computeIfAbsent(HashMap.java:1221) ~[?:?] {re:mixin}
    at net.p3pp3rf1y.sophisticatedstorage.client.StorageTextureManager.lambda$parseBarrelTextures$12(StorageTextureManager.java:102) ~[sophisticatedstorage-1.18.2-0.6.16.274.jar%23184!/:1.18.2-0.6.16.274] {re:classloading,pl:rei_plugin_compatibilities:B}
    at java.util.Optional.ifPresent(Optional.java:178) ~[?:?] {re:mixin}
-- Overlay render details --
Details:
    Overlay name: net.minecraft.client.gui.screens.LoadingOverlay
Stacktrace:
    at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:882) ~[client-1.18.2-20220404.173914-srg.jar%23203!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:rei_plugin_compatibilities:B,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1046) ~[client-1.18.2-20220404.173914-srg.jar%23203!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:rei_plugin_compatibilities:B,pl:mixin:APP:dynamiclightsreforged.mixins.json:MinecraftClientMixin,pl:mixin:APP:rubidium.mixins.json:core.MixinMinecraftClient,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:tklib.mixin.json:client.MinecraftMixin,pl:mixin:APP:justenoughkeys.mixins.json:MinecraftMixin,pl:mixin:APP:justenoughkeys.mixins.json:CustomDropKeysMixin,pl:mixin:APP:mixins.oculus.json:MixinMinecraft_Keybinds,pl:mixin:APP:mixins.oculus.json:MixinMinecraft_Images,pl:mixin:APP:mixins.oculus.json:MixinMinecraft_PipelineManagement,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:debugify-common.mixins.json:basic.client.mc46766.MinecraftClientMixin,pl:mixin:APP:rubidium_extras.mixins.json:FrameCounter.FpsAccessorMixin,pl:mixin:APP:itlt.mixins.json:WindowTitleMixin,pl:mixin:APP:ding.mixins.json:MinecraftMixin,pl:mixin:APP:flywheel.mixins.json:PausedPartialTickAccessor,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:APP:fabrication.mixins.json:g_weird_tweaks.use_items_while_riding.MixinMinecraftClient,pl:mixin:APP:fabrication.mixins.json:a_fixes.uncap_menu_fps.MixinMinecraftClient,pl:mixin:APP:alternativeworldsavelocation_forge.mixins.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:665) ~[client-1.18.2-20220404.173914-srg.jar%23203!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:rei_plugin_compatibilities:B,pl:mixin:APP:dynamiclightsreforged.mixins.json:MinecraftClientMixin,pl:mixin:APP:rubidium.mixins.json:core.MixinMinecraftClient,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:tklib.mixin.json:client.MinecraftMixin,pl:mixin:APP:justenoughkeys.mixins.json:MinecraftMixin,pl:mixin:APP:justenoughkeys.mixins.json:CustomDropKeysMixin,pl:mixin:APP:mixins.oculus.json:MixinMinecraft_Keybinds,pl:mixin:APP:mixins.oculus.json:MixinMinecraft_Images,pl:mixin:APP:mixins.oculus.json:MixinMinecraft_PipelineManagement,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:debugify-common.mixins.json:basic.client.mc46766.MinecraftClientMixin,pl:mixin:APP:rubidium_extras.mixins.json:FrameCounter.FpsAccessorMixin,pl:mixin:APP:itlt.mixins.json:WindowTitleMixin,pl:mixin:APP:ding.mixins.json:MinecraftMixin,pl:mixin:APP:flywheel.mixins.json:PausedPartialTickAccessor,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:APP:fabrication.mixins.json:g_weird_tweaks.use_items_while_riding.MixinMinecraftClient,pl:mixin:APP:fabrication.mixins.json:a_fixes.uncap_menu_fps.MixinMinecraftClient,pl:mixin:APP:alternativeworldsavelocation_forge.mixins.json:MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.2-20220404.173914-srg.jar%23203!/:?] {re:classloading,re:mixin,pl:runtimedistcleaner:A,pl:mixin:A,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:31) ~[fmlloader-1.18.2-40.2.0.jar%2317!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {}
    at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {}

This crash only occurs when these three mods are loaded together, oddly enough. Removing any of the three fixes the issue.

Crash Number. 2

Mods In Question:

Unfortunately I don't have a crash log for this one as trying to load these two together simply freezes the game before it even gets to the load-in screen, I have to force close Java. It also seems to completely break it - I have to remove both Json Things and Vanity: Core to get the game to load again. Tested this one several times with the same results.

Conclusion

I'm not sure what Json Things is doing during load-in but it certainly seems to be causing some conflicts with other mods. I'd be happy to help with further testing if this is something you'd be willing to look into, otherwise no big deal. Just wanted to provide some extra info in case anyone else is running into similar issues.

gigaherz commented 1 year ago

I'll take a look as soon as I can, but I presume it's related to how Json Things creates and uses a resource manager (with a custom pack type) earlier than the two vanilla has. Some mods don't consider the possibility of this happening and don't protect themselves against this situation, leading to crashes due to things being referenced before they are initialized. I can't stop doing things this way since I need to read the json files before the registry events fire, so the only solution for compatibility is that the other mods protect their code such that they don't crash if a resource reload happens unexpectedly early. I'll confirm later if this is the case with the listed mods.

Desymoo commented 1 year ago

Good to know, thank you for the quick reply! I don't mind opening some issues on other projects to let the authors know about this as well, but I'll wait for you to confirm 👍