CaffeineMC / lithium-fabric

A Fabric mod designed to improve the general performance of Minecraft without breaking things
GNU Lesser General Public License v3.0
1.94k stars 188 forks source link

Explosion Optimization Incompatible with Carpet #521

Open Spturate opened 5 months ago

Spturate commented 5 months ago

this logs:https://mclo.gs/9GDcMTA

ikalco commented 5 months ago

Another log

lithium ci build (e61bad1) and carpet 1.21 github release ``` [13:32:16] [main/INFO]: Loading Minecraft 1.21 with Fabric Loader 0.15.11 [13:32:17] [main/INFO]: Loading 6 mods: - carpet 1.4.147+v240613 - fabricloader 0.15.11 \-- mixinextras 0.3.5 - java 22 - lithium 0.12.3+git.e61bad1 - minecraft 1.21 [13:32:17] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=file:/opt/mscs/worlds/jiving-jungi/libraries/net/fabricmc/sponge-mixin/0.13.3+mixin.0.8.5/sponge-mixin-0.13.3+mixin.0.8.5.jar Service=Knot/Fabric Env=SERVER [13:32:17] [main/INFO]: Compatibility level set to JAVA_17 [13:32:17] [main/INFO]: Loaded configuration file for Lithium: 138 options available, 0 override(s) found [13:32:18] [main/INFO]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.3.5). [13:32:22] [main/WARN]: @Redirect conflict. Skipping carpet.mixins.json:Explosion_scarpetEventMixin from mod carpet->@Redirect::onExplosion(Lnet/minecraft/class_243;Lnet/minecraft/class_1297;)F with priority 990, already redirected by lithium.mixins.json:world.explosions.cache_exposure.ExplosionMixin from mod lithium->@Redirect::returnCachedExposure(Lnet/minecraft/class_243;Lnet/minecraft/class_1297;)F with priority 1000 [13:32:22] [main/ERROR]: Minecraft has crashed! net.fabricmc.loader.impl.FormattedException: java.lang.ExceptionInInitializerError at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:63) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:472) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23) [fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:69) [fabric-loader-0.15.11.jar:?] at net.fabricmc.installer.ServerLauncher.main(ServerLauncher.java:69) [fabric-server-mc.1.21-loader.0.15.11-launcher.1.0.1.jar:1.0.1] Caused by: java.lang.ExceptionInInitializerError at net.minecraft.class_2358.method_10199(class_2358.java:336) ~[server-intermediary.jar:?] at net.minecraft.class_2966.method_12851(class_2966.java:52) ~[server-intermediary.jar:?] at net.minecraft.server.Main.main(Main.java:108) ~[server-intermediary.jar:?] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.11.jar:?] ... 4 more Caused by: net.minecraft.class_148: Lithium Class Analysis at me.jellysquid.mods.lithium.common.reflection.ReflectionUtil.hasMethodOverride(ReflectionUtil.java:46) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.reflection.ReflectionUtil.isBlockStateEntityTouchable(ReflectionUtil.java:64) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.block.BlockStateFlags$6.test(BlockStateFlags.java:116) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.block.BlockStateFlags$6.test(BlockStateFlags.java:113) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at net.minecraft.class_4970$class_4971.initFlags(class_4970.java:2392) ~[server-intermediary.jar:?] at net.minecraft.class_4970$class_4971.handler$zno001$lithium$init(class_4970.java:2381) ~[server-intermediary.jar:?] at net.minecraft.class_4970$class_4971.method_26200(class_4970.java:872) ~[server-intermediary.jar:?] at net.minecraft.class_2246.(class_2246.java:1259) ~[server-intermediary.jar:?] at net.minecraft.class_2358.method_10199(class_2358.java:336) ~[server-intermediary.jar:?] at net.minecraft.class_2966.method_12851(class_2966.java:52) ~[server-intermediary.jar:?] at net.minecraft.server.Main.main(Main.java:108) ~[server-intermediary.jar:?] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.11.jar:?] ... 4 more Caused by: java.lang.RuntimeException: Mixin transformation of net.minecraft.class_1927 failed at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:427) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) ~[fabric-loader-0.15.11.jar:?] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?] at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3601) ~[?:?] at java.base/java.lang.Class.getDeclaredMethod(Class.java:2856) ~[?:?] at me.jellysquid.mods.lithium.common.reflection.ReflectionUtil.hasMethodOverride(ReflectionUtil.java:23) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.reflection.ReflectionUtil.isBlockStateEntityTouchable(ReflectionUtil.java:64) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.block.BlockStateFlags$6.test(BlockStateFlags.java:116) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.block.BlockStateFlags$6.test(BlockStateFlags.java:113) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at net.minecraft.class_4970$class_4971.initFlags(class_4970.java:2392) ~[server-intermediary.jar:?] at net.minecraft.class_4970$class_4971.handler$zno001$lithium$init(class_4970.java:2381) ~[server-intermediary.jar:?] at net.minecraft.class_4970$class_4971.method_26200(class_4970.java:872) ~[server-intermediary.jar:?] at net.minecraft.class_2246.(class_2246.java:1259) ~[server-intermediary.jar:?] at net.minecraft.class_2358.method_10199(class_2358.java:336) ~[server-intermediary.jar:?] at net.minecraft.class_2966.method_12851(class_2966.java:52) ~[server-intermediary.jar:?] at net.minecraft.server.Main.main(Main.java:108) ~[server-intermediary.jar:?] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.11.jar:?] ... 4 more Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) ~[fabric-loader-0.15.11.jar:?] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?] at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3601) ~[?:?] at java.base/java.lang.Class.getDeclaredMethod(Class.java:2856) ~[?:?] at me.jellysquid.mods.lithium.common.reflection.ReflectionUtil.hasMethodOverride(ReflectionUtil.java:23) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.reflection.ReflectionUtil.isBlockStateEntityTouchable(ReflectionUtil.java:64) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.block.BlockStateFlags$6.test(BlockStateFlags.java:116) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.block.BlockStateFlags$6.test(BlockStateFlags.java:113) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at net.minecraft.class_4970$class_4971.initFlags(class_4970.java:2392) ~[server-intermediary.jar:?] at net.minecraft.class_4970$class_4971.handler$zno001$lithium$init(class_4970.java:2381) ~[server-intermediary.jar:?] at net.minecraft.class_4970$class_4971.method_26200(class_4970.java:872) ~[server-intermediary.jar:?] at net.minecraft.class_2246.(class_2246.java:1259) ~[server-intermediary.jar:?] at net.minecraft.class_2358.method_10199(class_2358.java:336) ~[server-intermediary.jar:?] at net.minecraft.class_2966.method_12851(class_2966.java:52) ~[server-intermediary.jar:?] at net.minecraft.server.Main.main(Main.java:108) ~[server-intermediary.jar:?] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.11.jar:?] ... 4 more Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Redirector onExplosion(Lnet/minecraft/class_243;Lnet/minecraft/class_1297;)F in carpet.mixins.json:Explosion_scarpetEventMixin from mod carpet failed injection check, (0/1) succeeded. Scanned 1 target(s). Using refmap fabric-carpet-refmap.json at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.postInject(InjectionInfo.java:468) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1384) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1062) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:402) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:327) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:422) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.13.3+mixin.0.8.5.jar:0.13.3+mixin.0.8.5] at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218) ~[fabric-loader-0.15.11.jar:?] at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) ~[fabric-loader-0.15.11.jar:?] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?] at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3601) ~[?:?] at java.base/java.lang.Class.getDeclaredMethod(Class.java:2856) ~[?:?] at me.jellysquid.mods.lithium.common.reflection.ReflectionUtil.hasMethodOverride(ReflectionUtil.java:23) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.reflection.ReflectionUtil.isBlockStateEntityTouchable(ReflectionUtil.java:64) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.block.BlockStateFlags$6.test(BlockStateFlags.java:116) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at me.jellysquid.mods.lithium.common.block.BlockStateFlags$6.test(BlockStateFlags.java:113) ~[lithium-fabric-mc1.21-0.12.3+git.e61bad1.jar:?] at net.minecraft.class_4970$class_4971.initFlags(class_4970.java:2392) ~[server-intermediary.jar:?] at net.minecraft.class_4970$class_4971.handler$zno001$lithium$init(class_4970.java:2381) ~[server-intermediary.jar:?] at net.minecraft.class_4970$class_4971.method_26200(class_4970.java:872) ~[server-intermediary.jar:?] at net.minecraft.class_2246.(class_2246.java:1259) ~[server-intermediary.jar:?] at net.minecraft.class_2358.method_10199(class_2358.java:336) ~[server-intermediary.jar:?] at net.minecraft.class_2966.method_12851(class_2966.java:52) ~[server-intermediary.jar:?] at net.minecraft.server.Main.main(Main.java:108) ~[server-intermediary.jar:?] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:470) ~[fabric-loader-0.15.11.jar:?] ... 4 more ```
2No2Name commented 5 months ago

Temporarily solved by disabling the setting in the relase

2No2Name commented 3 months ago

Enabled the setting again, submitted a PR to carpet a while ago

2No2Name commented 3 months ago

https://github.com/gnembon/fabric-carpet/pull/1937

2No2Name commented 3 months ago

Workaround: Manually disable lithium's optimization in the lithium.properties file in the config folder by adding the following line to it: mixin.world.explosions.cache_exposure=false

This mod incompatibility should also be fixed by the above PR to carpet, but it is uncertain when it will be merged.