AutoModpack icon indicating copy to clipboard operation
AutoModpack copied to clipboard

Quilt support

Open limejet opened this issue 2 years ago • 5 comments

Bug description

As noted in the changelog and in #158, Automodpack v3.5.0 currently does not support the quilt loader. This is a regression.

Steps to reproduce

Install automodpack 3.5.0 on a server running Quilt.

Expected behavior

Automodpack works.

Actual behavior

Quilt fails to load some dependencies and automodpack crashes.

Relevant logs

java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'automodpack'!
	...
Caused by: java.lang.NullPointerException: Cannot read field "generateModpackOnStart" because "pl.skidam.automodpack_common.GlobalVariables.serverConfig" is null
	at pl.skidam.automodpack.AutoModpack.onInitialize(AutoModpack.java:58) ~[transformed-mod-automodpack.i0:0/:?]
	at java.lang.invoke.MethodHandleProxies$1.invoke(Unknown Source) ~[?:?]
	at com.sun.proxy.jdk.proxy3.$Proxy29.onInitialize(Unknown Source) ~[?:?]
	at org.quiltmc.loader.impl.game.minecraft.Hooks.lambda$startServer$2(Hooks.java:65) ~[quilt-loader-0.20.2.jar:?]
	at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke$0(EntrypointUtils.java:36) ~[quilt-loader-0.20.2.jar:?]
	at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:62) ~[quilt-loader-0.20.2.jar:?]
	... 16 more

limejet avatar Sep 12 '23 19:09 limejet

I actually have this same issue still, I think, with version 3.5.2. I'm running heavily modded MC 1.19.2 with Quilt Loader 0.21.0.

java.lang.RuntimeException: Could not execute entrypoint stage 'main' due to errors, provided by 'automodpack'!
	at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke0$2(EntrypointUtils.java:66) ~[quilt-loader-0.21.0.jar:?]
	at org.quiltmc.loader.impl.util.ExceptionUtil.gatherExceptions(ExceptionUtil.java:34) ~[quilt-loader-0.21.0.jar:?]
	at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:64) ~[quilt-loader-0.21.0.jar:?]
	at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invokeContainer(EntrypointUtils.java:49) ~[quilt-loader-0.21.0.jar:?]
	at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:36) ~[quilt-loader-0.21.0.jar:?]
	at org.quiltmc.loader.impl.game.minecraft.Hooks.startServer(Hooks.java:65) ~[quilt-loader-0.21.0.jar:?]
	at net.minecraft.server.Main.main(Main.java:101) [transformed-mod-minecraft.i0:0/:?]
	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 org.quiltmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:524) [quilt-loader-0.21.0.jar:?]
	at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:84) [quilt-loader-0.21.0.jar:?]
	at net.fabricmc.loader.launch.knot.KnotServer.main(KnotServer.java:31) [quilt-loader-0.21.0.jar:?]
	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 org.quiltmc.loader.impl.launch.server.QuiltServerLauncher.main(QuiltServerLauncher.java:66) [quilt-loader-0.21.0.jar:?]
Caused by: java.lang.NullPointerException: Cannot read field "generateModpackOnStart" because "pl.skidam.automodpack_common.GlobalVariables.serverConfig" is null
	at pl.skidam.automodpack.AutoModpack.onInitialize(AutoModpack.java:58) ~[transformed-mod-automodpack.i0:0/:?]
	at java.lang.invoke.MethodHandleProxies$1.invoke(MethodHandleProxies.java:198) ~[?:?]
	at com.sun.proxy.jdk.proxy3.$Proxy31.onInitialize(Unknown Source) ~[?:?]
	at org.quiltmc.loader.impl.game.minecraft.Hooks.lambda$startServer$2(Hooks.java:65) ~[quilt-loader-0.21.0.jar:?]
	at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.lambda$invoke$0(EntrypointUtils.java:36) ~[quilt-loader-0.21.0.jar:?]
	at org.quiltmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:62) ~[quilt-loader-0.21.0.jar:?]
	... 16 more

Full log here:

https://mclo.gs/ZhYAfWB

retropele avatar Nov 25 '23 20:11 retropele

I have this issue as well, and don't see anyone with a similar log to mine, so I figure I may as well give my log here too:

java.lang.ExceptionInInitializerError
	at pl.skidam.automodpack_loader_core.FabricLanguageAdapter.<clinit>(FabricLanguageAdapter.java:26)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Unknown Source)
	at java.base/java.lang.Class.forName(Unknown Source)
	at org.quiltmc.loader.impl.QuiltLoaderImpl.setupLanguageAdapters(QuiltLoaderImpl.java:1169)
	at org.quiltmc.loader.impl.QuiltLoaderImpl.finishModLoading(QuiltLoaderImpl.java:1066)
	at org.quiltmc.loader.impl.QuiltLoaderImpl.freeze(QuiltLoaderImpl.java:197)
	at org.quiltmc.loader.impl.launch.knot.Knot.init(Knot.java:150)
	at org.quiltmc.loader.impl.launch.knot.Knot.launch(Knot.java:78)
	at org.quiltmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:28)
Caused by: java.lang.RuntimeException: java.lang.NoSuchFieldException: mods
	at pl.skidam.automodpack_loader_core.FabricLoaderImplAccessor.<clinit>(FabricLoaderImplAccessor.java:35)
	... 10 more
Caused by: java.lang.NoSuchFieldException: mods
	at java.base/java.lang.Class.getDeclaredField(Unknown Source)
	at pl.skidam.automodpack_loader_core.FabricLoaderImplAccessor.<clinit>(FabricLoaderImplAccessor.java:23)
	... 10 more

crash-2024-08-15_21.35.16.1457-quilt_loader.txt

This mod seems very promising and it's what I'd prefer to use over any other out there, but I'm curious if anyone knows of a temporary alternative for Quilt? I just want my server members to not have to download every thing I add/update, since I am actively making more mods for them; but I can live without it for awhile too :)

justanoval avatar Aug 16 '24 01:08 justanoval

Well actually, this mod just doesn't support quilt anymore and it's not something that I am willing to spend my free time researching how to implement.

However I am open for any PR's adding support for it, what would need to be done is to add specific quilt loader module there and implement similar functionality like the rest of these modules do.

Also out of curiosity why do you use quilt?

Skidamek avatar Aug 16 '24 06:08 Skidamek

Well actually, this mod just doesn't support quilt anymore and it's not something that I am willing to spend my free time researching how to implement.

However I am open for any PR's adding support for it, what would need to be done is to add specific quilt loader module there and implement similar functionality like the rest of these modules do.

Also out of curiosity why do you use quilt?

Ah I understand, that makes sense.

I personally use Quilt for a few reasons:

  • I've had previous experience with both Fabric and Forge. When it came to choosing a mod loader to dev with, I chose Fabric. However, there were some claims by someone notable I follow toward the leaders of Fabric regarding discrimination. This was supposedly impeding on good features that could've been added to Fabric, so they moved all of their mods to Quilt. Considering I used those mods and loved them, that's how I got into using Quilt as a player.
    • I can't expand upon this more unfortunately, I am not totally aware of the situation. It isn't my leading factor, just how I was introduced to Quilt.
  • Quilt works with most, if not all of the Fabric mods that I tend to play or code with. So switching to it wasn't a problem, and I felt just unlocked more.
  • I found that the utilities in Quilt were very convenient and accessible.
  • Quilt is in constant development. I found a small bug and someone fixed it within the day. Not sure if others do this haha, just thought it was nice and I was treated well because of it.
  • The community is much more welcoming than any other Minecraft-related coding community I have ever been in, which is something I really value.

I am sure Forge and Fabric are great, and I still play modpacks that use those. But for my server I am making for friends, I chose to develop my mods with Quilt.

I'll take a look at the code you linked and see if there is anything I can think of. I am not super experienced with Minecraft modding, but taking a look won't hurt :)

justanoval avatar Aug 16 '24 12:08 justanoval

Well actually, this mod just doesn't support quilt anymore and it's not something that I am willing to spend my free time researching how to implement. However I am open for any PR's adding support for it, what would need to be done is to add specific quilt loader module there and implement similar functionality like the rest of these modules do. Also out of curiosity why do you use quilt?

Ah I understand, that makes sense.

I personally use Quilt for a few reasons:

* I've had previous experience with both Fabric and Forge. When it came to choosing a mod loader to dev with, I chose Fabric. However, there were some claims by someone notable I follow toward the leaders of Fabric regarding discrimination. This was supposedly impeding on good features that could've been added to Fabric, so they moved all of their mods to Quilt. Considering I used those mods and loved them, that's how I got into using Quilt as a player.
  
  * I can't expand upon this more unfortunately, I am not totally aware of the situation. It isn't my leading factor, just how I was introduced to Quilt.

* Quilt works with most, if not all of the Fabric mods that I tend to play or code with. So switching to it wasn't a problem, and I felt just unlocked more.

* I found that the utilities in Quilt were very convenient and accessible.

* Quilt is in constant development. I found a small bug and someone fixed it within the day. Not sure if others do this haha, just thought it was nice and I was treated well because of it.

* The community is much more welcoming than any other Minecraft-related coding community I have ever been in, which is something I really value.

I am sure Forge and Fabric are great, and I still play modpacks that use those. But for my server I am making for friends, I chose to develop my mods with Quilt.

I'll take a look at the code you linked and see if there is anything I can think of. I am not super experienced with Minecraft modding, but taking a look won't hurt :)

I wanted to add that Fabric also apparently rejected some important pushes to the code because they were made by transgender contributors.

The bigotry, and rejecting fixes to broken code, are both huge parts of why Quilt exists as a Fabric alternative. The code appears to be well-maintained and the Quilt team respond to issues and errors really fast.

retropele avatar Aug 21 '24 15:08 retropele