[ETF] Entity Texture Features - [Fabric & Forge]

[ETF] Entity Texture Features - [Fabric & Forge]

38M Downloads

Mod incompatibility crash on world join

clarfonthey opened this issue · 7 comments

commented

Decided to link this issue here since maybe ETF might be at fault on this one, but I'm not sure. See the linked issue in maruohon/litematica#509 for similar discussion.

Mostly copy-pasted version of that issue here:

So, when I tried testing the configuration of my mods on 1.18.2, I got this crash when loading a brand new single player world, where the crash happens at the "Joining World" screen. Here's the trace using Not Enough Crashes:

[01:43:39] [Render thread/WARN]: addIdMetaToBlockState(): Exception while adding blockstate conversion map entry for ID '2943'
java.lang.IllegalArgumentException: Data fixer not registered for: minecraft:DUMMY in block_entity
	at Not Enough Crashes deobfuscated stack trace.(1.18.2+build.2) ~[?:?]
	at com.mojang.datafixers.schemas.Schema.getChoiceType(Schema.java:109) ~[datafixerupper-4.1.27.jar:?]
	at net.minecraft.datafixer.schema.IdentifierNormalizingSchema.getChoiceType(IdentifierNormalizingSchema:52) ~[?:?]
	at net.minecraft.datafixer.fix.ChoiceFix.makeRule(ChoiceFix:24) ~[?:?]
	at com.mojang.datafixers.DataFix.getRule(DataFix.java:108) ~[datafixerupper-4.1.27.jar:?]
	at com.mojang.datafixers.DataFixerUpper.lambda$getRule$6(DataFixerUpper.java:130) ~[datafixerupper-4.1.27.jar:?]
	at it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap.computeIfAbsent(Long2ObjectOpenHashMap.java:499) ~[fastutil-8.5.6.jar:?]
	at it.unimi.dsi.fastutil.longs.Long2ObjectMaps$SynchronizedMap.computeIfAbsent(Long2ObjectMaps.java:455) ~[fastutil-8.5.6.jar:?]
	at com.mojang.datafixers.DataFixerUpper.getRule(DataFixerUpper.java:125) ~[datafixerupper-4.1.27.jar:?]
	at com.mojang.datafixers.DataFixerUpper.update(DataFixerUpper.java:84) ~[datafixerupper-4.1.27.jar:?]
	at fi.dy.masa.litematica.schematic.conversion.SchematicConversionMaps.updateBlockName(SchematicConversionMaps.java:281) ~[litematica-fabric-1.18.2-0.11.1.jar:?]
	at fi.dy.masa.litematica.schematic.conversion.SchematicConversionMaps.addIdMetaToBlockState(SchematicConversionMaps.java:192) ~[litematica-fabric-1.18.2-0.11.1.jar:?]
	at fi.dy.masa.litematica.schematic.conversion.SchematicConversionMaps.computeMaps(SchematicConversionMaps.java:72) ~[litematica-fabric-1.18.2-0.11.1.jar:?]
	at fi.dy.masa.litematica.event.WorldLoadListener.onWorldLoadPost(WorldLoadListener.java:31) ~[litematica-fabric-1.18.2-0.11.1.jar:?]
	at fi.dy.masa.malilib.event.WorldLoadHandler.onWorldLoadPost(WorldLoadHandler.java:89) ~[malilib-fabric-1.18.2-0.12.1.jar:?]
	at net.minecraft.client.network.ClientPlayNetworkHandler.handler$cmo000$onPostGameJoin(ClientPlayNetworkHandler:6915) ~[?:?]
	at net.minecraft.client.network.ClientPlayNetworkHandler.onGameJoin(ClientPlayNetworkHandler:395) ~[?:?]
	at net.minecraft.network.packet.s2c.play.GameJoinS2CPacket.apply(GameJoinS2CPacket:83) ~[?:?]
	at net.minecraft.network.packet.s2c.play.GameJoinS2CPacket.apply(GameJoinS2CPacket:19) ~[?:?]
	at net.minecraft.network.NetworkThreadUtils.method_11072(NetworkThreadUtils:22) ~[?:?]
	at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor:157) ~[?:?]
	at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor:23) ~[?:?]
	at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor:131) ~[?:?]
	at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor:116) ~[?:?]
	at net.minecraft.client.MinecraftClient.render(MinecraftClient:1085) ~[?:?]
	at net.minecraft.client.MinecraftClient.run(MinecraftClient:737) ~[?:?]
	at net.minecraft.client.main.Main.main(Main:236) [client-intermediary.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 net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:416) [fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77) [fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.13.3.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.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]

And here's the trace without Not Enough Traces:

[02:17:15] [Render thread/WARN]: addIdMetaToBlockState(): Exception while adding blockstate conversion map entry for ID '691'
java.lang.IllegalArgumentException: Data fixer not registered for: minecraft:DUMMY in block_entity
	at com.mojang.datafixers.schemas.Schema.getChoiceType(Schema.java:109) ~[datafixerupper-4.1.27.jar:?]
	at net.minecraft.class_1220.getChoiceType(class_1220.java:52) ~[client-intermediary.jar:?]
	at net.minecraft.class_1197.makeRule(class_1197.java:24) ~[client-intermediary.jar:?]
	at com.mojang.datafixers.DataFix.getRule(DataFix.java:108) ~[datafixerupper-4.1.27.jar:?]
	at com.mojang.datafixers.DataFixerUpper.lambda$getRule$6(DataFixerUpper.java:130) ~[datafixerupper-4.1.27.jar:?]
	at it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap.computeIfAbsent(Long2ObjectOpenHashMap.java:499) ~[fastutil-8.5.6.jar:?]
	at it.unimi.dsi.fastutil.longs.Long2ObjectMaps$SynchronizedMap.computeIfAbsent(Long2ObjectMaps.java:455) ~[fastutil-8.5.6.jar:?]
	at com.mojang.datafixers.DataFixerUpper.getRule(DataFixerUpper.java:125) ~[datafixerupper-4.1.27.jar:?]
	at com.mojang.datafixers.DataFixerUpper.update(DataFixerUpper.java:84) ~[datafixerupper-4.1.27.jar:?]
	at fi.dy.masa.litematica.schematic.conversion.SchematicConversionMaps.updateBlockName(SchematicConversionMaps.java:281) ~[litematica-fabric-1.18.2-0.11.1.jar:?]
	at fi.dy.masa.litematica.schematic.conversion.SchematicConversionMaps.addIdMetaToBlockState(SchematicConversionMaps.java:192) ~[litematica-fabric-1.18.2-0.11.1.jar:?]
	at fi.dy.masa.litematica.schematic.conversion.SchematicConversionMaps.computeMaps(SchematicConversionMaps.java:72) ~[litematica-fabric-1.18.2-0.11.1.jar:?]
	at fi.dy.masa.litematica.event.WorldLoadListener.onWorldLoadPost(WorldLoadListener.java:31) ~[litematica-fabric-1.18.2-0.11.1.jar:?]
	at fi.dy.masa.malilib.event.WorldLoadHandler.onWorldLoadPost(WorldLoadHandler.java:89) ~[malilib-fabric-1.18.2-0.12.1.jar:?]
	at net.minecraft.class_634.handler$zcm000$onPostGameJoin(class_634.java:2915) ~[client-intermediary.jar:?]
	at net.minecraft.class_634.method_11120(class_634.java:395) ~[client-intermediary.jar:?]
	at net.minecraft.class_2678.method_11567(class_2678.java:83) ~[client-intermediary.jar:?]
	at net.minecraft.class_2678.method_11054(class_2678.java:19) ~[client-intermediary.jar:?]
	at net.minecraft.class_2600.method_11072(class_2600.java:22) ~[client-intermediary.jar:?]
	at net.minecraft.class_1255.method_18859(class_1255.java:157) [client-intermediary.jar:?]
	at net.minecraft.class_4093.method_18859(class_4093.java:23) [client-intermediary.jar:?]
	at net.minecraft.class_1255.method_16075(class_1255.java:131) [client-intermediary.jar:?]
	at net.minecraft.class_1255.method_5383(class_1255.java:116) [client-intermediary.jar:?]
	at net.minecraft.class_310.method_1523(class_310.java:1085) [client-intermediary.jar:?]
	at net.minecraft.class_310.method_1514(class_310.java:737) [client-intermediary.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:236) [client-intermediary.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 net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:416) [fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:77) [fabric-loader-0.13.3.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.13.3.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.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]

Disabling ETF fixed the crash, but what's weird is that running with just ETF does not have the crash. So, clearly, it's an incompatibility of some sort.

After much pain, I finally determined the combination of mods that made this happen. Removing any of the bolded mods fixes the crash:

  • Minecraft 1.18.2
  • MaLiLib 0.12.1 (required for Litematica)
  • Litematica 0.11.1
  • LazyDFU 0.1.2
  • Entity Texture Features 2.6.RC2

Removing Not Enough Crashes (4.1.4+1.18.2) does not actually stop the crash, but I did check for completeness. I'm also running on the Fabric Loader 0.13.3, but that shouldn't affect this.

This was originally shared on the Litematica repo since that's the mod that directly shows up in the stack trace, but I decided to link this here too in case anyone has any insight on why this might be happening with specifically ETF, since it's very strange that a textures mod would cause this. Note that I do not have this crash on 1.18.1 where I also have these mods installed, in case that helps narrow down the issue:

  • Minecraft 1.18.1
  • MaLiLib 0.11.8
  • Litematica 0.10.4
  • LazyDFU 0.1.2
  • Entity Texture Features 2.4.1

I strongly suspect that this isn't LazyDFU's fault since it hasn't had any changes since then, and I also shared this issue on the Litematica repo. Once this issue is solved on either side I'll close this issue on all the repos, but I figured I'd share here for visibility.

commented

Thanks for the help. I haven't looked into that yet, but regardless, I'll move that discussion over to the Litematica side. ❤️

commented

Theres only 1 thing i can think of that might cause a conflict, please try the latest ETF version the 2.6.0 release not RC2, and disable the config option "Allow non [a-z0-9/._-] characters in texture paths", otherwise i have no ideas it is indeed a litematica crash

commented

I've just had another report about this same issue #35 , i'm going to have a look if I can perhaps fix it, if I do I will update the #35 issue

commented

Theres only 1 thing i can think of that might cause a conflict, please try the latest ETF version the 2.6.0 release not RC2, and disable the config option "Allow non [a-z0-9/._-] characters in texture paths", otherwise i have no ideas it is indeed a litematica crash

This actually fixes the issue for me.

commented

This actually fixes the issue for me too. Maybe it should be disabled by default?

commented

That's probably a good idea going forwards

commented

Follow #35 for updates