Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fabric Loader v0.12.x compatibility #19

Open
marcohoovy opened this issue Sep 12, 2021 · 11 comments
Open

Fabric Loader v0.12.x compatibility #19

marcohoovy opened this issue Sep 12, 2021 · 11 comments
Labels
help wanted Extra attention is needed

Comments

@marcohoovy
Copy link

when starting the mod it will give this error:

Exception in thread "main" java.lang.NoClassDefFoundError: net/fabricmc/loader/discovery/ModResolutionException at io.github.ezforever.thatorthis.Main.run(Main.java:33) at io.github.ezforever.thatorthis.PreloadAdapter.<clinit>(PreloadAdapter.java:14) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:466)

@EZForever
Copy link
Owner

Ooh the inevitable has come...

Please attach the full debug log, or if the log is not available, please report your game and Fabric Loader's version.

@lenrik1589
Copy link

lenrik1589 commented Oct 17, 2021

build.gradle
gradle.properties
debug.log

Exception in thread "main" java.lang.NoClassDefFoundError: net/fabricmc/loader/discovery/ModResolutionException
	at io.github.ezforever.thatorthis.Main.run(Main.java:33)
	at io.github.ezforever.thatorthis.PreloadAdapter.<clinit>(PreloadAdapter.java:14)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:466)
	at net.fabricmc.loader.impl.FabricLoaderImpl.setupLanguageAdapters(FabricLoaderImpl.java:411)
	at net.fabricmc.loader.impl.FabricLoaderImpl.finishModLoading(FabricLoaderImpl.java:307)
	at net.fabricmc.loader.impl.FabricLoaderImpl.freeze(FabricLoaderImpl.java:112)
	at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:120)
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
Caused by: java.lang.ClassNotFoundException: net.fabricmc.loader.discovery.ModResolutionException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:158)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	... 11 more

encountered this problem on my client before, now, after downgrading to 0.11.7 the error changed to

Exception in thread "main" java.lang.IllegalArgumentException: URI scheme is not "file"
	at java.base/java.io.File.<init>(File.java:423)
	at net.fabricmc.loader.util.UrlUtil.asFile(UrlUtil.java:54)
	at net.fabricmc.loader.discovery.ClasspathModCandidateFinder.lambda$findCandidates$0(ClasspathModCandidateFinder.java:106)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at net.fabricmc.loader.discovery.ClasspathModCandidateFinder.findCandidates(ClasspathModCandidateFinder.java:102)
	at net.fabricmc.loader.discovery.ModResolver.resolve(ModResolver.java:733)
	at io.github.ezforever.thatorthis.FabricInternals.injectMods(FabricInternals.java:208)
	at io.github.ezforever.thatorthis.FabricInternals.onHook(FabricInternals.java:161)
	at io.github.ezforever.thatorthis.FabricInternals$HookedModContainerList.invoke(FabricInternals.java:41)
	at jdk.proxy2/jdk.proxy2.$Proxy18.iterator(Unknown Source)
	at net.fabricmc.loader.FabricLoader.setupMods(FabricLoader.java:411)
	at net.fabricmc.loader.FabricLoader.finishModLoading(FabricLoader.java:263)
	at net.fabricmc.loader.FabricLoader.freeze(FabricLoader.java:107)
	at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:127)
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)

debug.log

@EZForever
Copy link
Owner

Fabric Loader v0.12.x basically rewrote the mod loading mechanics, thus completely broke ThatOrThis. The only solution is to rewrite ThatOrThis as well, and it's planned as v0.3.0 (see #6), but personally I don't really have enough time to keep working on this, so no release date is promised.

As for @lenrik1589's problem with v0.11.7 in a development envionment, it's a design oversight and I'm working on a fix.

EZForever added a commit that referenced this issue Oct 20, 2021
…ult finders

`ClasspathModCandidateFinder` assumes all mods found by it must be a .jar file in a development environment, and will crash if the assumption is not true, e.g. when loaded nested jars.

See <#19 (comment)>.
@EZForever
Copy link
Owner

EZForever commented Oct 20, 2021

@lenrik1589, try this snapshot: thatorthis-0.2.5+1.17@07eaa7b.zip. Use with Fabric Loader v0.11.7. You might need to temporarily configure your Gradle to use this local jar instead of grabbing from Modrinth.

I'll change mod manifest to warn users about v0.12.x incompatibility after fixing v0.11.x issue. As for the actual fix, I'm looking for some help.

@EZForever EZForever added the help wanted Extra attention is needed label Oct 20, 2021
@lenrik1589
Copy link

lenrik1589 commented Oct 20, 2021

try this snapshot: thatorthis-0.2.5+1.17@07eaa7b.zip

yes, this version worked like a charm

@EZForever
Copy link
Owner

OK that's nice to know. v0.2.6 is out containing the fix, you can use Modrinth Maven again.

@EZForever EZForever changed the title error loading mods Fabric Loader v0.12.x compatibility Oct 20, 2021
@marcohoovy
Copy link
Author

I'm not gonna lie here, but I completely forgot about this so sorry for the late response!

my issue was caused by an version mismatch, similar to the discussion above

@JustSimplyKyle
Copy link

Using the dev version still doesn't work
image

@JustSimplyKyle
Copy link

@Felix14-v2
Copy link
Contributor

@EZForever , hi! I'm sorry to write here, but I don't know a more suitable place for such messages. I know it's been a long time since the first incompatible version of Fabric Loader was released, but I want to say that your amazing mod is still relevant, and it lacks support so much for new Fabric versions. Therefore, I would like to ask if there are any solutions to eliminate incompatibility for now, or can ThatOrThis be considered dead?

@EZForever
Copy link
Owner

@Felix14-v2 , thanks for your support, and I can say ThatOrThis is definitively not dead. I've been missing on this project (or rather, missing on GitHub) was due to some personal things that hit me in the last few months. I will continue developing this mod and try my best to iron out all the issues and incompatibilities, though again, no guarantee is given.

As for the issue mentioned above by KyleUltimate , honestly I don't know what had happened. I don't really have any experience of dealing with java modules, the current code is a "throw-things-in-and-hope-it-will-work" approach - well now we know it doesn't work. It launches under development environment, at least.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

5 participants