ModManagerMC / ModManager

A ModManager extension for ModMenu
Apache License 2.0
79 stars 11 forks source link

Essential compatibility – Error checking for updates of all mods #84

Closed Felix14-v2 closed 2 years ago

Felix14-v2 commented 2 years ago

Description When Essential and ModManager are installed, Mod Manager cannot check for updates at all with this messages in logs: «Skipping update for [ModName] because it has no jar in mods»

To Reproduce

  1. Install ModManager
  2. Install an outdated version of any example mod from Modrinth
  3. Install Essential
  4. Launch Minecraft 1.17.1
  5. Open ModManager menu
  6. See error

Screenshots image

Technical Info:

Logs Without Essential: latest.log With Essential: latest.log

DeathsGun commented 2 years ago

I can't reproduce it as Essential crashes for me in the dev environment. First because I was using fabricloader 0.12 and after rolling back to 0.11 it crashed with a Linkage error. I tried it on Linux and macOS always this error.

crash-2021-10-18_19.06.39-client.txt

DeathsGun commented 2 years ago

I will need to wait until Essentail releases a version which is compatible with fabricloader 0.12. Stacktrace:

java.lang.RuntimeException: Could not execute entrypoint stage 'preLaunch' due to errors, provided by 'essential-loader'!
    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:134)
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68)
    at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
    at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
Caused by: net.fabricmc.loader.api.EntrypointException: Exception while loading entries for entrypoint 'preLaunch' provided by 'essential-loader'
    at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:56)
    at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47)
    ... 5 more
Caused by: net.fabricmc.loader.api.LanguageAdapterException: java.lang.reflect.InvocationTargetException
    at net.fabricmc.loader.impl.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:60)
    at net.fabricmc.loader.impl.entrypoint.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:117)
    at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:53)
    ... 6 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at net.fabricmc.loader.impl.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:58)
    ... 8 more
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at gg.essential.loader.stage0.EssentialSetupPreLaunch.<init>(EssentialSetupPreLaunch.java:22)
    ... 14 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    at gg.essential.loader.stage0.EssentialSetupPreLaunch.loadStage1(EssentialSetupPreLaunch.java:37)
    at gg.essential.loader.stage0.EssentialSetupPreLaunch.<init>(EssentialSetupPreLaunch.java:20)
    ... 14 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at gg.essential.loader.stage1.EssentialLoaderBase.load(EssentialLoaderBase.java:110)
    at gg.essential.loader.stage1.EssentialSetupPreLaunch.<init>(EssentialSetupPreLaunch.java:18)
    ... 21 more
Caused by: java.lang.RuntimeException: Failed to remap Essential to dev mappings
    at gg.essential.loader.stage2.EssentialLoader.addToClasspath(EssentialLoader.java:94)
    at gg.essential.loader.stage2.EssentialLoaderBase.load(EssentialLoaderBase.java:126)
    ... 27 more
Caused by: java.lang.NoSuchMethodException: net.fabricmc.loader.impl.discovery.ModResolver.getInMemoryFs()
    at java.base/java.lang.Class.getDeclaredMethod(Class.java:2613)
    at gg.essential.loader.stage2.EssentialLoader$LoaderInternals.remapMap(EssentialLoader.java:201)
    at gg.essential.loader.stage2.RuntimeModRemapper.remap(RuntimeModRemapper.java:63)
    at gg.essential.loader.stage2.EssentialLoader.addToClasspath(EssentialLoader.java:92)
    ... 28 more
DeathsGun commented 2 years ago

Can you recheck this with the new version, because in #94 the setup had also essentials and update checking did work

Felix14-v2 commented 2 years ago

Unfortunately, ModManager 1.2.0 still can't check for updates with Essential. My bug report has been closed in their discord, I hope to see this resolved in the next Essential update.

DeathsGun commented 2 years ago

I could reproduce the behavior in multimc I now just need to get this working in intellij

DeathsGun commented 2 years ago

Found the bug Essentials didn't provide a name in the fabric.mod.json and thats why ModManager couldn't parse it and handled the error incorrectly.