FiniteReality / embeddium

An open-source client performance mod for Minecraft (based on Sodium 0.5.8) prioritizing reliability & mod compatibility
https://legacy.curseforge.com/minecraft/mc-mods/embeddium
GNU Lesser General Public License v3.0
213 stars 89 forks source link

Does the embeddium of the forge platform requires to install the fabric api? #395

Open Yefancy opened 1 month ago

Yefancy commented 1 month ago

Bug Description

its crash while I'm trying to enter the world.

[11:50:09] [Render thread/WARN] [mixin/]: Error loading class: net/fabricmc/fabric/api/blockview/v2/FabricBlockView (java.lang.ClassNotFoundException: net.fabricmc.fabric.api.blockview.v2.FabricBlockView)

Reproduction Steps

    modImplementation("org.embeddedt:embeddium-1.20.1:0.3.31-beta.53+mc1.20.1")

Log File

[11:50:09] [Render thread/WARN] [mixin/]: Error loading class: net/fabricmc/fabric/api/blockview/v2/FabricBlockView (java.lang.ClassNotFoundException: net.fabricmc.fabric.api.blockview.v2.FabricBlockView)
[11:50:10] [Render thread/ERROR] [minecraft/Minecraft]: Unreported exception thrown!
org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-patched-0.8.5.11.jar:?] {}
    at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-10.0.9.jar:10.0.9+10.0.9+main.dcd20f30] {}
    at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.10.jar:?] {}
    at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?] {}
    at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.10.jar:?] {}
    at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?] {}
    at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.10.jar:?] {}
    at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] {}
    at me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline.BlockRenderCache.<init>(BlockRenderCache.java:23) ~[embeddium-0.3.31+mc1.20.1.jar%23234!/:?] {re:classloading}
    at me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildContext.<init>(ChunkBuildContext.java:20) ~[embeddium-0.3.31+mc1.20.1.jar%23234!/:?] {re:mixin,re:classloading}
    at me.jellysquid.mods.sodium.client.render.chunk.compile.executor.ChunkBuilder.<init>(ChunkBuilder.java:53) ~[embeddium-0.3.31+mc1.20.1.jar%23234!/:?] {re:classloading}
    at me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.<init>(RenderSectionManager.java:110) ~[embeddium-0.3.31+mc1.20.1.jar%23234!/:?] {re:mixin,re:classloading,pl:mixin:APP:shimmer.forge.mixins.json:rubidium.RenderSectionManagerAccessor,pl:mixin:A}
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.initRenderer(SodiumWorldRenderer.java:279) ~[embeddium-0.3.31+mc1.20.1.jar%23234!/:?] {re:mixin,re:classloading,pl:mixin:APP:shimmer.forge.mixins.json:rubidium.SodiumWorldRendererMixin,pl:mixin:A}
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.loadWorld(SodiumWorldRenderer.java:126) ~[embeddium-0.3.31+mc1.20.1.jar%23234!/:?] {re:mixin,re:classloading,pl:mixin:APP:shimmer.forge.mixins.json:rubidium.SodiumWorldRendererMixin,pl:mixin:A}
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.setWorld(SodiumWorldRenderer.java:118) ~[embeddium-0.3.31+mc1.20.1.jar%23234!/:?] {re:mixin,re:classloading,pl:mixin:APP:shimmer.forge.mixins.json:rubidium.SodiumWorldRendererMixin,pl:mixin:A}
    at net.minecraft.client.renderer.LevelRenderer.handler$zec000$onWorldChanged(LevelRenderer.java:5664) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:mixin,pl:accesstransformer:B,pl:unprotect:A,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:embeddium.mixins.json:features.render.world.clouds.WorldRendererMixin,pl:mixin:APP:shimmer.mixins.json:LevelRendererMixin,pl:mixin:APP:embeddium.mixins.json:features.options.weather.WorldRendererMixin,pl:mixin:APP:embeddium.mixins.json:features.render.gui.outlines.WorldRendererMixin,pl:mixin:APP:embeddium.mixins.json:features.render.world.sky.WorldRendererMixin,pl:mixin:APP:embeddium.mixins.json:core.render.world.WorldRendererMixin,pl:mixin:APP:shimmer.forge.mixins.json:flywheel.LevelRenderMixin,pl:mixin:A,pl:unprotect:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.renderer.LevelRenderer.setLevel(LevelRenderer.java:685) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:mixin,pl:accesstransformer:B,pl:unprotect:A,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:embeddium.mixins.json:features.render.world.clouds.WorldRendererMixin,pl:mixin:APP:shimmer.mixins.json:LevelRendererMixin,pl:mixin:APP:embeddium.mixins.json:features.options.weather.WorldRendererMixin,pl:mixin:APP:embeddium.mixins.json:features.render.gui.outlines.WorldRendererMixin,pl:mixin:APP:embeddium.mixins.json:features.render.world.sky.WorldRendererMixin,pl:mixin:APP:embeddium.mixins.json:core.render.world.WorldRendererMixin,pl:mixin:APP:shimmer.forge.mixins.json:flywheel.LevelRenderMixin,pl:mixin:A,pl:unprotect:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.updateLevelInEngines(Minecraft.java:2153) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:mixin,pl:accesstransformer:B,pl:unprotect:A,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:unprotect:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.setLevel(Minecraft.java:2078) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:mixin,pl:accesstransformer:B,pl:unprotect:A,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:unprotect:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.multiplayer.ClientPacketListener.handleLogin(ClientPacketListener.java:404) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:mixin,pl:accesstransformer:B,pl:unprotect:A,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:embeddium.mixins.json:core.world.map.ClientPlayNetworkHandlerMixin,pl:mixin:A,pl:unprotect:A,pl:runtimedistcleaner:A}
    at net.minecraft.network.protocol.game.ClientboundLoginPacket.handle(ClientboundLoginPacket.java:95) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:classloading,pl:unprotect:A}
    at net.minecraft.network.protocol.game.ClientboundLoginPacket.handle(ClientboundLoginPacket.java:25) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:classloading,pl:unprotect:A}
    at net.minecraft.network.protocol.PacketUtils.method_11072(PacketUtils.java:22) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:classloading,pl:unprotect:A}
    at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:156) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:computing_frames,pl:accesstransformer:B,pl:unprotect:A,re:mixin,pl:accesstransformer:B,pl:unprotect:A,re:classloading,pl:accesstransformer:B,pl:unprotect:A}
    at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:computing_frames,pl:unprotect:A,re:mixin,pl:unprotect:A,re:classloading,pl:unprotect:A}
    at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:130) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:computing_frames,pl:accesstransformer:B,pl:unprotect:A,re:mixin,pl:accesstransformer:B,pl:unprotect:A,re:classloading,pl:accesstransformer:B,pl:unprotect:A}
    at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:115) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:computing_frames,pl:accesstransformer:B,pl:unprotect:A,re:mixin,pl:accesstransformer:B,pl:unprotect:A,re:classloading,pl:accesstransformer:B,pl:unprotect:A}
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1106) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:mixin,pl:accesstransformer:B,pl:unprotect:A,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:unprotect:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.run(Minecraft.java:718) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:mixin,pl:accesstransformer:B,pl:unprotect:A,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:unprotect:A,pl:runtimedistcleaner:A}
    at net.minecraft.client.main.Main.main(Main.java:218) ~[forge-1.20.1-47.1.43-minecraft-merged-project-@forge-1.20.1-loom.mappings.1_20_1.layered+hash.497731599-v2-forge-1.20.1-47.1.43.jar%23226!/:?] {re:classloading,pl:unprotect: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.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.1.43.jar%23142!/:?] {}
    at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.1.43.jar%23142!/:?] {}
    at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.devService(ForgeClientUserdevLaunchHandler.java:19) ~[fmlloader-1.20.1-47.1.43.jar%23142!/:?] {}
    at net.minecraftforge.fml.loading.targets.CommonDevLaunchHandler.lambda$makeService$7(CommonDevLaunchHandler.java:135) ~[fmlloader-1.20.1-47.1.43.jar%23142!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar%23147!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar%23147!/:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar%23147!/:?] {}
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar%23147!/:?] {}
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar%23147!/:?] {}
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar%23147!/:?] {}
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar%23147!/:?] {}
    at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[?:?] {}
    at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) ~[dev-launch-injector-0.2.1+build.8.jar%23224!/:?] {}
    at dev.architectury.transformer.TransformerRuntime.main(TransformerRuntime.java:220) ~[?:?] {}
Caused by: java.lang.NullPointerException: Cannot invoke "org.spongepowered.asm.mixin.transformer.ClassInfo.addMethodsRecursive(java.util.Set, boolean)" because the return value of "org.spongepowered.asm.mixin.transformer.ClassInfo.forName(String)" is null
    at org.spongepowered.asm.mixin.transformer.ClassInfo.addMethodsRecursive(ClassInfo.java:1248) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.mixin.transformer.ClassInfo.getInterfaceMethods(ClassInfo.java:1205) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.mixin.transformer.ext.extensions.ExtensionCheckInterfaces.preApply(ExtensionCheckInterfaces.java:145) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.mixin.transformer.ext.Extensions.preApply(Extensions.java:156) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.preApply(TargetClassContext.java:375) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:363) ~[mixin-patched-0.8.5.11.jar:?] {}
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[mixin-patched-0.8.5.11.jar:?] {}
    ... 53 more
Yefancy commented 1 month ago

seems the annotation @OptionalInterface doesn't work for the class WorldSlice.class