fzzyhmstrs / EMI_loot

12 stars 10 forks source link

"Failed to load level data or datapacks, can't proceed with server load" #26

Closed MechanosG closed 1 year ago

MechanosG commented 1 year ago

Seems like a similar issue to this one - https://github.com/fzzyhmstrs/EMI_loot/issues/16 - except mention of Mythic Metals. After noticing the EMI Loot update and adding it to my WIP modpack, loading a singleplayer world pops up the datapack error, wanting to load the vanilla datapack or go back to menu.

[15:34:29] [Render thread/WARN]: Failed to load level data or datapacks, can't proceed with server load
java.util.concurrent.ExecutionException: java.lang.ClassCastException: class nourl.mythicmetals.misc.RandomChanceWithLuckCondition cannot be cast to class fzzyhmstrs.emi_loot.mixins.RandomChanceLootConditionAccessor (nourl.mythicmetals.misc.RandomChanceWithLuckCondition and fzzyhmstrs.emi_loot.mixins.RandomChanceLootConditionAccessor are in unnamed module of loader org.quiltmc.loader.impl.launch.knot.KnotClassLoader @335eadca)
    at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) ~[?:?]
    at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073) ~[?:?]
    at net.minecraft.class_7196.method_45694(class_7196.java:183) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_7196.method_41891(class_7196.java:117) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_7196.method_41899(class_7196.java:196) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_7196.method_41894(class_7196.java:62) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_528$class_4272.method_20174(class_528.java:513) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_528$class_4272.method_20164(class_528.java:420) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_528$class_4272.method_25402(class_528.java:351) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_350.method_25402(class_350.java:328) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_4069.method_25402(class_4069.java:537) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_312.method_1611(class_312.java:98) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_437.method_25412(class_437.java:540) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_312.method_1601(class_312.java:98) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_312.method_22686(class_312.java:169) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_1255.execute(class_1255.java:102) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_312.method_22684(class_312.java:169) ~[transformed-mod-minecraft.i0:0/:?]
    at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43) ~[lwjgl-glfw-3.3.1.jar:build 7]
    at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.3.1.jar:build 7]
    at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3403) ~[lwjgl-glfw-3.3.1.jar:build 7]
    at com.mojang.blaze3d.systems.RenderSystem.pollEvents(RenderSystem.java:198) ~[transformed-mod-minecraft.i0:0/:?]
    at com.mojang.blaze3d.systems.RenderSystem.flipFrame(RenderSystem.java:209) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_1041.method_15998(class_1041.java:310) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_310.method_1523(class_310.java:1238) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_310.method_1514(class_310.java:801) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.client.main.Main.main(Main.java:237) ~[minecraft-1.19.4-client.jar:?]
    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 org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:524) ~[quilt-loader-0.19.1.jar:?]
    at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:82) ~[quilt-loader-0.19.1.jar:?]
    at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:28) ~[quilt-loader-0.19.1.jar:?]
    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 org.polymc.impl.OneSixLauncher.invokeMain(OneSixLauncher.java:104) ~[NewLaunch.jar:?]
    at org.polymc.impl.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:176) ~[NewLaunch.jar:?]
    at org.polymc.impl.OneSixLauncher.launch(OneSixLauncher.java:186) ~[NewLaunch.jar:?]
    at org.polymc.EntryPoint.listen(EntryPoint.java:144) ~[NewLaunch.jar:?]
    at org.polymc.EntryPoint.main(EntryPoint.java:74) ~[NewLaunch.jar:?]
Caused by: java.lang.ClassCastException: class nourl.mythicmetals.misc.RandomChanceWithLuckCondition cannot be cast to class fzzyhmstrs.emi_loot.mixins.RandomChanceLootConditionAccessor (nourl.mythicmetals.misc.RandomChanceWithLuckCondition and fzzyhmstrs.emi_loot.mixins.RandomChanceLootConditionAccessor are in unnamed module of loader org.quiltmc.loader.impl.launch.knot.KnotClassLoader @335eadca)
    at fzzyhmstrs.emi_loot.parser.condition.RandomChanceConditionParser.parseCondition(RandomChanceConditionParser.java:16) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.registry.LootParserRegistry.parseCondition(LootParserRegistry.java:45) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootCondition(LootTableParser.java:569) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootConditions(LootTableParser.java:547) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootConditionTexts(LootTableParser.java:537) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseItemEntry(LootTableParser.java:355) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseItemEntry(LootTableParser.java:347) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootPoolEntry(LootTableParser.java:327) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.lambda$parseAlternativeEntry$8(LootTableParser.java:391) ~[transformed-mod-emi-loot.i0:0/:?]
    at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?]
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[?:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseAlternativeEntry(LootTableParser.java:390) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootPoolEntry(LootTableParser.java:329) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootPoolEntry(LootTableParser.java:320) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootPoolEntry(LootTableParser.java:308) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseBlockLootTableInternal(LootTableParser.java:234) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseBlockLootTable(LootTableParser.java:199) ~[transformed-mod-emi-loot.i0:0/:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootTable(LootTableParser.java:124) ~[transformed-mod-emi-loot.i0:0/:?]
    at com.google.common.collect.RegularImmutableMap.forEach(RegularImmutableMap.java:292) ~[guava-31.1-jre.jar:?]
    at fzzyhmstrs.emi_loot.parser.LootTableParser.parseLootTables(LootTableParser.java:96) ~[transformed-mod-emi-loot.i0:0/:?]
    at net.minecraft.class_60.handler$zjn000$emi_loot$lootTablesAfterFabric(class_60.java:2040) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_60.method_20712(class_60.java:59) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_60.method_18788(class_60.java:17) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_4080.method_18790(class_4080.java:13) ~[transformed-mod-minecraft.i0:0/:?]
    at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
    at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
    at net.minecraft.class_4014.method_18365(class_4014.java:69) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_1255.method_18857(class_1255.java:139) ~[transformed-mod-minecraft.i0:0/:?]
    at net.minecraft.class_7196.method_45694(class_7196.java:182) ~[transformed-mod-minecraft.i0:0/:?]
    ... 39 more

Minecraft 1.19.4 Quilt 0.19.1 EMI Loot 0.6.3 EMI 1.0.4 Mythic Metals 0.18.1

ThatGuy6211 commented 1 year ago

just experienced similar thing when trying to load world list in singleplayer. took mod out and works as normal.

fzzyhmstrs commented 1 year ago

@Noaaan heads up there's some conflict with your custom loot condition. It looks like you are using a Vanilla loot condition type instead of creating a custom one. Thats causing my parser to fail on the condition not matching to its presumed actual class type.

fzzyhmstrs commented 1 year ago

I might have to find a way to make parsing by type a bit safer in parallel....

Mathead253 commented 1 year ago

I have the same problem on my end but with different mods

fzzyhmstrs commented 1 year ago

@Mathead253 can you post your crash log(s)? I want to see if there is a different root cause

fzzyhmstrs commented 1 year ago

Version 0.6.4 should handle the problem seen on the OP here, but doesn't fix the underlying problem; using a LootCondition with a non-matching Type, so this will still fail to parse the table this condition belongs too. It should simply log errors instead of crashing.

As such I'll be leaving this issue open to track this.

MechanosG commented 1 year ago

Just tested 0.6.4. Confirmed not crashing now. I did notice a pretty large memory usage increase and FPS drop.. but not pointing fingers. I'll need to test further and see if it's just coincidence (lots of things it could be - fairly large modpack - but the test world I've been using has been consistent, and nothing had changed for the 0.6.4 test, so it caught my attention). Thanks for the update.

Mathead253 commented 1 year ago

@Mathead253 can you post your crash log(s)? I want to see if there is a different root cause

Sorry for the wait but here's the crash log: crash-2023-06-25_01.24.17-client.txt

fzzyhmstrs commented 1 year ago

Marking this as closed now that I see Noaaan has acted on it and committed a fix.