ModificationStation / StationAPI

A general use API for Fabric Loader mods on legacy Minecraft versions.
85 stars 19 forks source link

Station API Fails to Launch with Vanilla Launcher #81

Open Jadestrouble opened 12 months ago

Jadestrouble commented 12 months ago

When Creating an instance of Babric 0.14.19 on Beta 1.7.3 with Oracle's Java 17 JDK, And "Station API 88236ff" on Windows 11, Minecraft crashes with this error.

net.fabricmc.loader.impl.FormattedException: java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'station-api-base'!
    at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:63)
    at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:164)
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Caused by: java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'station-api-base'!
    at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke0$0(EntrypointUtils.java:51)
    at net.fabricmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:33)
    at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:49)
    at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35)
    at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:162)
    ... 2 more
Caused by: net.fabricmc.loader.api.EntrypointException: Exception while loading entries for entrypoint 'preLaunch' provided by 'station-api-base'
    at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:56)
    at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47)
    ... 4 more
Caused by: java.lang.RuntimeException: Mixin transformation of net.modificationstation.stationapi.api.StationAPI failed
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:427)
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323)
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218)
    at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:112)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:467)
    at net.fabricmc.loader.impl.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:50)
    at net.fabricmc.loader.impl.entrypoint.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:117)
    at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:53)
    ... 5 more
Caused by: java.lang.LinkageError: loader constraint violation: loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @48eff760 wants to load class org.objectweb.asm.tree.ClassNode. A different class with the same name was previously loaded by 'app'. (org.objectweb.asm.tree.ClassNode is in unnamed module of loader 'app')
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
    at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.defineClassFwd(KnotClassLoader.java:153)
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:355)
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218)
    at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:112)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
    at com.llamalad7.mixinextras.utils.MixinInternals.<clinit>(MixinInternals.java:43)
    at com.llamalad7.mixinextras.service.MixinExtrasServiceImpl.lambda$takeControlFrom$0(MixinExtrasServiceImpl.java:59)
    at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4204)
    at com.llamalad7.mixinextras.service.MixinExtrasServiceImpl.takeControlFrom(MixinExtrasServiceImpl.java:54)
    at com.llamalad7.mixinextras.service.MixinExtrasService.setup(MixinExtrasService.java:30)
    at com.llamalad7.mixinextras.MixinExtrasBootstrap.initialize(MixinExtrasBootstrap.java:40)
    at com.llamalad7.mixinextras.MixinExtrasBootstrap.init(MixinExtrasBootstrap.java:22)
    at com.llamalad7.mixinextras.platform.fabric.MixinExtrasConfigPlugin.onLoad(MixinExtrasConfigPlugin.java:14)
    at org.spongepowered.asm.mixin.transformer.PluginHandle.onLoad(PluginHandle.java:119)
    at org.spongepowered.asm.mixin.transformer.MixinConfig.onSelect(MixinConfig.java:709)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.selectConfigs(MixinProcessor.java:498)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:460)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:438)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:290)
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234)
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202)
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422)
    ... 14 more
MrMasrozYTLIVE commented 9 months ago

Babric does modify few things and adds its libraries (Like modified LWJGL) so I think its just pointless to run it in vanilla launcher. It should be possible tho if you'll modify version JSON tho

Lassebq commented 9 months ago

That sounds like a problem with multiple asm libraries on path, and I think I know a solution

matthewperiut commented 6 months ago

I ran it in the vanilla launcher recently, so I'm not sure why you're experiencing an issue, but I did do it on linux with temurin-17 instead of embedded java in mc launcher